【发布时间】:2012-01-30 03:24:17
【问题描述】:
我正在制作一个安卓应用程序。是否可以检查用户(给定一些坐标)是否面向街道以及该街道是否在 10-20 英尺范围内?
如果没有,是否有我可以使用代码/坐标手动“遍历”以查看附近是否有“街道”的开源地图?我想为盲人制作一个导航系统,我需要一些方法来检查用户是否站在街道中间。
谢谢, 罗希特
【问题讨论】:
标签: android google-maps
我正在制作一个安卓应用程序。是否可以检查用户(给定一些坐标)是否面向街道以及该街道是否在 10-20 英尺范围内?
如果没有,是否有我可以使用代码/坐标手动“遍历”以查看附近是否有“街道”的开源地图?我想为盲人制作一个导航系统,我需要一些方法来检查用户是否站在街道中间。
谢谢, 罗希特
【问题讨论】:
标签: android google-maps
您需要阅读 Google Maps Geocoding API:
http://code.google.com/apis/maps/documentation/geocoding/
如果您使用的是 Android,则有一个特殊的 Geocoder 类会为您调用 Google 地图:
Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
(来源:Android: Reverse geocoding - getFromLocation)
要注意的是,这只会给出用户当前位置最可能的地址——你不能指定模糊因子或类似的东西。即使这样,10-20 英尺也应该足够接近以匹配。
如果这不能为您提供所需的数据,您可能还想查看OpenStreetMap,这是一个开放的地图数据库。我自己没有太多经验,但这里有文档:http://wiki.openstreetmap.org/wiki/Main_Page
【讨论】: