我试图建立网页显示一个交互式地图(占页面的100% ),在那里我提出了点或线的信息。Plotly似乎非常适合这一点,我真的很喜欢它的可视化,但它不支持地图,比如内置的Open Street Map,它使用Mapbox来实现这一点。我没有任何针对Mapbox的东西,但从我所能找到的情况来看,它是免费的,直到有一定数量的视图(虽然它使用OSM)。
简单地说:有没有一种简单的方法(作为开源和免费使用)使用python来构建这样一个带有显示信息的地图的网页?
发布于 2019-08-09 21:50:45
确实有!您可以使用Mapbox GL JS而无需绘图。这里有一个html代码的例子,它将为你创建这些全尺寸的地图。它们可以是卫星,也可以是普通地图。
绘制线条:https://docs.mapbox.com/mapbox-gl-js/example/geojson-line/
创建弹出窗口onclick:https://docs.mapbox.com/mapbox-gl-js/example/popup-on-click/
发布于 2021-01-22 21:07:05
您确实可以不受限制地免费使用OSM地图,或者在Plotly和Dash中使用Mapbox API帐户,请参阅https://plotly.com/python/mapbox-layers/
layout.mapbox.style中的
底图
layout.mapbox.style的接受值为以下值之一:
由来自不需要注册或访问tokens
中定义的本地Mapbox installation.
以下是同一绘图文档中的代码示例,该文档使用不带任何身份验证令牌的OSM底图:
import pandas as pd
us_cities = pd.read_csv("https://raw.githubusercontent.com/plotly/datasets/master/us-cities-top-1k.csv")
import plotly.express as px
fig = px.scatter_mapbox(us_cities, lat="lat", lon="lon", hover_name="City", hover_data=["State", "Population"],
color_discrete_sequence=["fuchsia"], zoom=3, height=300)
fig.update_layout(mapbox_style="open-street-map")
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
至于建立一个实际的网站,我推荐使用Dash,这是一个与plotly很好集成的well服务器。
https://stackoverflow.com/questions/45678022
复制相似问题