2015-10-19 52 views
1

我需要更改在管理頁面中查看地理數據時顯示的基本地圖。目前它正在使用openstreetmap。我想通過他們的API使用BING地圖。我已經在我的應用程序的另一部分成功完成了這一任務,但我無法弄清楚如何在Admin界面中執行此操作。Django Admin - 使用Bing地圖代替OSM

有沒有人有我可以使用的例子?它甚至不必是地圖,只是覆蓋默認地圖的任何東西。

謝謝!

回答

1

This網站提供了一個如何使用Mapquest而不是OSM圖塊進行此操作的示例。儘管我沒有將它改編爲Bing,但我確實使它適用於在Python 3.5.0上運行的Django 1.8.6。

它需要創建(或修改現有的)Django管理模板才能使其工作,但OpenLayers提供了可用於Bing參考的html頁面。我沒有足夠的經驗與OpenLayers知道如何做到這一點。

基本上是:

  • 子類GeoModelAdmin,並點按(在GeoDjango文檔更多關於這方面的信息)編輯admin.py您的新模板,並更換GeoTest與模型的名字:

    class BingGeoAdmin(django.contrib.gis.admin.GeoModelAdmin): 
        map_template = 'gis/admin/bing.html' 
    
    admin.site.register(GeoTest, BingGeoAdmin) 
    
  • 使用Django現有的osm.js作爲參考創建bing.js,其中涉及將base_layer塊更改爲新的Bing層。

  • 創建一個bing.html模板,指向bing.js文件。
+0

非常感謝您的回覆。我們並沒有最終做出改變,這就是爲什麼我沒有改過自新,但你的想法看起來很棒。 – LindaM