【问题标题】:Flask-Admin GeoAlchemy2 example doesn't show a mapFlask-Admin GeoAlchemy2 示例不显示地图
【发布时间】:2020-12-16 19:53:53
【问题描述】:

我正在尝试运行这个关于如何使用 Flask-Admin 显示地图的示例:https://github.com/flask-admin/flask-admin/tree/master/examples/geo_alchemy

在 README.rst 中有这样的指令:

  1. 您会注意到地图未渲染。要查看它们,您必须在 Mapbox 注册一个免费帐户并相应地设置 MAPBOX_MAP_ID 和 MAPBOX_ACCESS_TOKEN 配置变量。

我已经有一个有效的 MAPBOX_ACCESS_TOKEN,我去 MapBox 寻找一个 MAPBOX_MAP_ID。在那里我读到 MAP_ID 已被弃用,现在我必须获取一个图块集 ID,它被描述为由 .the_tileset_ID 本身组成的标签。

所以我找到了他们在说明中描述的代码(在我的例子中是 mapbox-streets-v8)并完成了 config.py 参数:

MAPBOX_MAP_ID = '<my_mapbox_user_name>.mapbox-streets-v8'
MAPBOX_ACCESS_TOKEN = 'pk.eyJ1...'

但是,我看不到任何显示的地图或任何错误消息。

我该如何解决?

【问题讨论】:

    标签: mapbox flask-admin geoalchemy2


    【解决方案1】:

    我认为文件 Lib\site-packages\flask_admin\static\admin\js\form.js 中有一个小错误。为获取磁贴而生成的原始 URL 为:

    https://api.mapbox.com/styles/v1/mapbox/<MAPBOX_MAP_ID parameter>/tiles/12/2258/2457?access_token=<MAPBOX_ACCESS_TOKEN parameter>
    

    但是,正确的是:

    https://api.mapbox.com/styles/v1/<MAPBOX_MAP_ID parameter>/tiles/12/2258/2457?access_token=<MAPBOX_ACCESS_TOKEN parameter>
    

    也就是说,我必须从 URL 中删除 ma​​pbox 字。

    为此,我对 form.js 文件进行了一些更改:

          //var mapboxUrl = 'https://api.mapbox.com/styles/v1/mapbox/'+window.MAPBOX_MAP_ID+'/tiles/{z}/{x}/{y}?access_token='+window.MAPBOX_ACCESS_TOKEN
          var mapboxUrl = 'https://api.mapbox.com/styles/v1/'+window.MAPBOX_MAP_ID+'/tiles/{z}/{x}/{y}?access_token='+window.MAPBOX_ACCESS_TOKEN
    

    那么,它现在可以工作了:

    【讨论】:

      猜你喜欢
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多