我想通过地理编码获取建筑物的坐标。此刻,我使用GeoCoder类为android从所选地址获取坐标,但这些并不对应建筑物的边缘。 OSM包含每个建筑物的这些信息,但我不知道如何使用GeoCoder类获取这些信息。是否有可能使用OSM的地理编码器类为Android获取此信息?使用地理编码获取建筑物的坐标
回答
这可能会更复杂一点。首先,OSM没有每个建筑物的地址。有时一座建筑物包含多个地址,或者一个地址可能属于多个建筑物。
但作为第一步,您可以使用Nominatim进行地理编码以获取特定地址的坐标。然后将这些坐标传递给立交桥API并搜索附近的建筑物。
例子:
我们正在寻找的建设地址Franzweg 4,德累斯顿。该Nominatim查询看起来是这样的(假设我们想JSON输出):
http://nominatim.openstreetmap.org/search.php?q=Franzweg+4%2C+Dresden&addressdetails=1&format=json
因为地址在OSM数据库中存在,则返回精确匹配。你可以看到通过查看地址详细信息,* house_number *和路匹配。我们甚至可以得到相应的way with ID 94892819,其中有building标记,并包含querying the API for the way ID(请参阅API documentation)时的建筑物轮廓的坐标。
但如前所述,并非每个地址都属于建筑物。例如,当searching forHuttenstraße14,德累斯顿我们还可以得到精确的结果,但返回的方式with ID 240398228属于一个区域。该区域包含一栋因此属于此地址的建筑物。 Nominatim还返回一个边界框,在这种情况下为51.0508041381836,51.0514030456543,13.7778491973877,13.7796478271484。我们可以使用它来检索该区域内的对象。如果你没有OSM的数据库的本地副本,你可以用下面的查询使用Overpass API:
<osm-script output="json">
<query type="way">
<has-kv k="building"/>
<bbox-query e="13.7796478271484" n="51.0514030456543" s="51.0508041381836" w="13.7778491973877"/>
</query>
<print mode="body"/>
<recurse type="down"/>
<print mode="skeleton"/>
</osm-script>
该查询returns所有方式与建筑物在给定的边界框标签。您可以使用overpass turbo来显示结果。如您所见,边界框包含多个建筑物,但其中只有一个建筑物位于该区域内。所以你必须通过每个建筑物的坐标来看看哪一个适合。请记住,一个地址可能属于多个建筑物,因此可以有多个单一的匹配。
然后还有第三种情况,地址是单个node。例如,Striesener Straße 38b的结果返回node with ID 1615986605。这里的节点实际上是建筑物方式的成员,所以很容易确定相应的建筑物。但情况并非总是如此,您可能需要运行另一个Overpass API查询来确定附近的建筑物,然后再次查看哪个最适合。
- 1. 获得校园内特定建筑物的地理坐标
- 2. 从反向地理编码中获取建筑物编号的确切地址
- 3. 使用GPS坐标获取建筑物名称
- 4. GeoCode - 获取选定建筑物的多边形的坐标
- 5. 在坐标系下获取建筑物数据
- 6. 问题建筑geocommons地理编码
- 7. freebase获取建筑物和地理位置
- 8. 谷歌地理编码 - 坐标地址与坐标
- 9. 获取我在建筑物的名称
- 10. 如何获取UIImage的地理坐标?
- 11. 建筑物的标识符
- 12. 从地图获取建筑物的高度API
- 13. 从google.maps获取建筑物的名称,地址为
- 14. 获取建筑物中所有设备的Mac地址
- 15. 谷歌地图获取iOS中的当前建筑物层数
- 16. 编辑google地图后获取坐标
- 17. Reactjs从(地理)json获取坐标
- 18. 如何从使用jde的坐标获取地理位置4.5
- 19. 获取地理坐标对给定源坐标对和距离
- 20. 谷歌地理编码 - 无法提取坐标
- 21. 寻找建筑物(A *有多个坐标)?
- 22. 如何找到一个人是否在建筑物内使用GPS坐标
- 23. 如何使用PHP获取地理坐标
- 24. 如何使用bing map控件从GestureEventArgs获取地理坐标?
- 25. 将坐标转换为地址的反向地理编码?
- 26. Google地理编码器返回错误的地址坐标
- 27. 地理编码的Android - 基于坐标查找地址
- 28. 地理编码地址不返回正确的坐标
- 29. 从地图获取坐标
- 30. 使用地理编码返回地面坐标数组的问题