Python Google Map API提供的OSM_type与文档不匹配

问题描述 投票:0回答:1

我正在使用Google's Map API从Python中提取纬度和经度坐标的地址信息。如下面的代码所示,有一个名为osm_type的属性,我认为是“开放的街道地图类型”。但是当我谷歌搜索文档时,我发现只是“类型”,我发现的所有列表都不包括“方式”作为预期的类型答案之一。有谁知道我在哪里可以获得对osm_type有效的类型列表?

码:

from geopy.geocoders import Nominatim
geolocator = Nominatim()
from geopy.exc import GeocoderTimedOut
import time

lat = 43.2335233435383   
lon = -70.9108497973799
location = geolocator.reverse(str(lat) + ", " + str(lon), timeout=10)
print(location.raw)

输出:

{'address': {'city': 'Dover',
  'country': 'United States of America',
  'country_code': 'us',
  'county': 'Strafford County',
  'house_number': '155',
  'postcode': '03820',
  'road': 'Long Hill Road',
  'state': 'New Hampshire'},
 'boundingbox': ['43.233423343538',
  '43.233623343538',
  '-70.91094979738',
  '-70.91074979738'],
 'display_name': '155, Long Hill Road, Dover, Strafford County, New Hampshire, 03820, United States of America',
 'lat': '43.2335233435383',
 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright',
 'lon': '-70.9108497973799',
 'osm_id': '18868744',
 'osm_type': 'way',
 'place_id': '201786637'}
python-3.x google-maps-api-3
1个回答
1
投票

据我所知,您使用的具体代码不支持返回type。然而,用你的代码运行一些抽查,输入其他纬度和经度,我发现纽约的麦当劳产生了一个“节点”而不是“方式”的osm_type,并且“方式”出现了很多。我得到了“节点”:纬度= 40.730949,经度= -74.001083。

如果不是查看Google Maps文档,而是查看Open Street Maps documentation,您会看到此字段最有可能定义数据类型而不是地址类型。这些类型由给定的URL定义:

  • 节点
  • 办法
  • 关系

这应该回答在这种情况下“方式”对你意味着什么。

访问为Google Maps API定义的type可能需要不同的代码段(如果可能的话)。您正在使用的命令似乎在其输出中没有该字段。

这个位于searches位置的页面似乎表明“类型”是一个用于位置搜索的字段,用于缩小您要查找的内容。这些类型似乎不是您正在使用的API调用的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.