地图绘制入门#
基础地图 WGS84#
# import plotly.io as pio
# pio.renderers.default = "notebook_connected"
from plotly import graph_objects as go
基础数据:
data = []
scattermapbox = go.Scattermapbox()
data.append(scattermapbox)
布局:
mapbox_kargs = dict(
zoom=10,
center=dict(
lat=30.272934,
lon=120.147376,
),
style="open-street-map",
accesstoken='!!! replace with your mapbox ak !!!'
)
layout_kargs = dict(
autosize=False,
width=1000,
height=600,
margin=dict(
r=0, t=38, l=0, b=0, pad=0
),
)
layout = go.Layout(
mapbox=mapbox_kargs,
**layout_kargs
)
渲染:
fig = go.Figure(
data=data,
layout=layout
)
f = go.FigureWidget(fig)
f
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/IPython/core/formatters.py:920, in IPythonDisplayFormatter.__call__(self, obj)
918 method = get_real_method(obj, self.print_method)
919 if method is not None:
--> 920 method()
921 return True
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/plotly/basewidget.py:741, in BaseFigureWidget._ipython_display_(self)
737 """
738 Handle rich display of figures in ipython contexts
739 """
740 # Override BaseFigure's display to make sure we display the widget version
--> 741 widgets.DOMWidget._ipython_display_(self)
AttributeError: type object 'DOMWidget' has no attribute '_ipython_display_'
可选的地图样式:(无需 ak)"open-street-map","carto-positron","stamen-terrain" 等 ;(需要 ak)"basic","streets","outdoors" 等。
使用高德地图 GCJ-02#
import plotly.graph_objects as go
data = []
scattermapbox = go.Scattermapbox()
data.append(scattermapbox)
basemap_layer = [
dict(
below="traces",
sourcetype="raster",
sourceattribution="高德地图",
source=[
"http://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7"
]
)
]
mapbox_kargs = dict(
zoom=10,
center=dict(
lat=30.272934,
lon=120.147376,
),
style="white-bg",
layers=basemap_layer,
)
layout_kargs = dict(
autosize=False,
width=1000,
height=500,
margin=dict(
r=0, t=38, l=0, b=0, pad=0
),
)
layout = go.Layout(
mapbox=mapbox_kargs,
**layout_kargs
)
fig = go.Figure(
data=data,
layout=layout
)
go.FigureWidget(fig)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/IPython/core/formatters.py:920, in IPythonDisplayFormatter.__call__(self, obj)
918 method = get_real_method(obj, self.print_method)
919 if method is not None:
--> 920 method()
921 return True
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/plotly/basewidget.py:741, in BaseFigureWidget._ipython_display_(self)
737 """
738 Handle rich display of figures in ipython contexts
739 """
740 # Override BaseFigure's display to make sure we display the widget version
--> 741 widgets.DOMWidget._ipython_display_(self)
AttributeError: type object 'DOMWidget' has no attribute '_ipython_display_'
使用天地图 CGCS2000#
import plotly.graph_objects as go
data = []
scattermapbox = go.Scattermapbox()
data.append(scattermapbox)
tk = "!!! replace with your tianditu tk !!!"
layer = "vec"
basemap_layer = [
dict(
below="traces",
sourcetype="raster",
sourceattribution="天地图",
source=[
"https://t0.tianditu.gov.cn/{layer}_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER={layer}&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILECOL={{x}}&TILEROW={{y}}&TILEMATRIX={{z}}&tk={tk}".format(layer=layer, tk=tk)
]
),
dict(
below="traces",
sourcetype="raster",
source=[
"https://t3.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILECOL={{x}}&TILEROW={{y}}&TILEMATRIX={{z}}&tk={tk}".format(tk=tk)
]
)
]
mapbox_kargs = dict(
zoom=10,
center=dict(
lat=30.272934,
lon=120.147376,
),
style="carto-positron",
layers=basemap_layer,
)
layout_kargs = dict(
autosize=False,
width=1200,
height=500,
margin=dict(
r=0, t=38, l=0, b=0, pad=0
),
)
layout = go.Layout(
mapbox=mapbox_kargs,
**layout_kargs
)
fig = go.Figure(
data=data,
layout=layout
)
go.FigureWidget(fig)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/IPython/core/formatters.py:920, in IPythonDisplayFormatter.__call__(self, obj)
918 method = get_real_method(obj, self.print_method)
919 if method is not None:
--> 920 method()
921 return True
File ~/checkouts/readthedocs.org/user_builds/visionz/envs/stable/lib/python3.10/site-packages/plotly/basewidget.py:741, in BaseFigureWidget._ipython_display_(self)
737 """
738 Handle rich display of figures in ipython contexts
739 """
740 # Override BaseFigure's display to make sure we display the widget version
--> 741 widgets.DOMWidget._ipython_display_(self)
AttributeError: type object 'DOMWidget' has no attribute '_ipython_display_'