Django 管理员 - 使用 Bing 地图而不是 OSM

Django Admin - Use Bing Maps instead of OSM

我需要更改在管理页面中查看地理数据时显示的底图。就目前而言,它目前正在使用 openstreetmap。我想通过 API 使用 BING 地图。我已在我的应用程序的另一部分成功完成此操作,但我无法弄清楚如何在管理界面中执行此操作。

有没有人有我可以使用的例子?它甚至不必是 bing 地图,只要是覆盖默认地图的任何东西即可。

谢谢!

This 网站提供了一个示例,说明如何使用 Mapquest 而不是 OSM 切片来执行此操作。虽然我没有针对 Bing 对其进行调整,但我确实对其进行了调整以在 Python 3.5.0.

上与 Django 1.8.6 运行 一起使用

需要创建(或修改现有的)Django 管理模板才能使其正常工作,但 OpenLayers 提供了一个 html 页面,您可以将其用于 Bing 参考。我没有足够的 OpenLayers 经验,不知道如何执行此操作。

基本上:

  • 子类 GeoModelAdmin,并通过编辑 admin.py 指向您的新模板(更多信息请参见 GeoDjango 文档),并将 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 文件。