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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Google Map API提供的OSM_type与文档不匹配相关的知识,希望对你有一定的参考价值。

我正在使用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'}
答案

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

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

  • 节点
  • 办法
  • 关系

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

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

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

以上是关于Python Google Map API提供的OSM_type与文档不匹配的主要内容,如果未能解决你的问题,请参考以下文章

将纬度和经度放入距离矩阵,python中的google map API

Google Map Road API 没有插入路径,也没有给出平滑的路线

如何在Google Map API中找到Tolls?

如何在 Google Map API v2 中处理地图的 onTouch 事件?

打开eclipse后应该怎样安装 Google map API ?在Android sDK Manager列表中没有找到Google map API 这应该

google map api V3 如何对marker进行操作。