有人知道['x'],['y']和['lon']和['lat']之间的关系吗?如果我知道一个节点的['lon']和['lat'],该如何在街道地图上绘制该节点?
我可以使用G.node [22258]查找节点的详细信息,例如
{
'x':319101.513
'y': 4427916
'osmid':
'ref':
'lon':'-81.11861'
'lat':'39.982066'
}
但是我想在地图上绘制一个节点。我知道此节点的纬度和经度,但似乎我需要知道'x'和'y'。
答案 0 :(得分:1)
您可以使用ox.get_nearest_node
从经纬度获取节点。
使用ox.get_nearest_node(G, (39.982066, -81.11861))
获取最近的节点
使用ox.plot_graph_route(G, [ox.get_nearest_node(G, (39.982066, -81.11861))])
在地图上绘制节点
答案 1 :(得分:0)
据我所知,x-y是投影坐标,而lat-long是以十进制度表示的地理坐标。投影坐标取决于投影本身,投影本身随位置而变化。我认为,这里需要的是将纬度转换成所需的投影坐标系。 这是执行此转换的一段代码(从WGS 84到Spherical Mercator)。
尽管这些不能显示您的x和y,但我敢肯定,这是一种获得所需结果所需的计算方法。您可以尝试其他与美国有关的预测。例如,我转换为澳大利亚的epsg 3112。当我这样做时,我可以直接应用欧几里得几何来获得以米为单位的距离。
链接:https://spatialreference.org/ref/epsg/wgs-84/,https://epsg.io/3857
from pyproj import Proj, transform
inProj = Proj(init='epsg:4326')
outProj = Proj(init='epsg:3857')
x1,y1 = -81.11861,39.982066
x2,y2 = transform(inProj,outProj,x1,y1)
print (x2,y2)
输出:
-9030082.35905815 4863336.501637128