使用地理图数据指导Google Street View API

时间:2019-05-03 21:56:18

标签: python google-street-view osmnx

我正在尝试使用从osmnxGoogle Street View Static API派生的地理数据-街道和十字路口,以获取街景图像

  1. 从十字路口拍摄
  2. 直接看路

我已经使用osmnx(请参见下面的代码)来获取如下所示的数据:

节点:

(NodeView((298466819, 20925446, 298466822, ...

和边缘:

OutMultiEdgeView([(298466819, 8324095, 0), (298466819, 298466822, 0), (298466822, 8324094, 0), ...

所以我可以这样绘制地图:

enter image description here

如果有帮助,可以轻松将其转换为纬度/经度坐标。

通过google_streetview api,使用Google API非常简单:

import google_streetview.api

# Define parameters for street view api
params = [{
    'size': '640x640', # max 640x640 pixels
    'location': '55.6901769, 12.5595158',
    'heading': '0',
    'pitch': '0',
    'key': '--'
}]

# Create a results object
results = google_streetview.api.results(params)

results.preview()

我需要弄清楚的是,给定节点和边缘,我可以为每个节点计算heading参数,以便从沿着街上看的节点至少获得一张图像吗?


道路地图图形数据:

import osmnx as ox
location_point = (55.6901, 12.5638)
G_nbro = ox.graph_from_point(location_point, distance=500, distance_type='network', network_type='drive')

相关:

Getting the POV for Google StreetView API

Is there a way to use the Google Street View API and only return "side view"?

1 个答案:

答案 0 :(得分:0)

我知道了。

  1. 使所有连接的邻居都到达一个节点:
nodes_dict = {node:nx.neighbors(G_nbro, node) for node in G_nbro.nodes}

for node in nodes_dict.keys():
    for nbr in nodes_dict[node]:
        print(node, nbr)
  1. 在每个点之间获取标题。这里有一个例子:
G_nbro[8322831][4555480822][0]['bearing']

311.045

插入Google API,即可正常运行。