我正在尝试在 stamer 墨粉图上绘制 Bokeh 、python 中的一些圆形标记。 我有来自 google map api 的位置,格式如下:
latitude 41.552164 longitude 44.990961
但是 Bokeh 图以 X 和 Y 坐标格式获取数据点。 如何将这些纬度/经度坐标转换为 X 和 Y?
提前谢谢你。
最佳答案
你的问题对于你到底想做什么有点含糊,代码示例将有助于给出更好的答案。
通常,当尝试绘制通过在线资源获得的地理数据时,您将在坐标系 (WGS84) 中获得数据,其中纬度为 y,经度为 x。 Bokeh 可以简单地通过在 ColumnDataSource 中指定适当的名称来绘制经度和纬度。
from bokeh.io import show
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
longitude = [44.990961]
latitude = [41.552164]
source = ColumnDataSource(data=dict(longitude=longitude, latitude=latitude))
p = figure(plot_width=400, plot_height=400)
p.circle(x='longitude', y='latitude', source=source)
show(p)
如果您的问题确实与数据的坐标转换有关,那么在没有更多详细信息的情况下将很难回答您的问题。我建议你看看https://en.wikipedia.org/wiki/Map_projection了解 map 投影。
如果需要将经纬度坐标转换成不同的坐标系。您可以使用 pyproj
包。
import pyproj
project_projection = pyproj.Proj("+init=EPSG:4326") # wgs84
google_projection = pyproj.Proj("+init=EPSG:3857") # default google projection
longitude = [44.990961]
latitude = [41.552164]
x, y = pyproj.transform(google_projection, project_projection, longitude, latitude)
print(x, y)
关于python - Bokeh map 情节。纬度/经度到 x 和 y,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955805/