2015-10-19 38 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