我需要找到给定半径内的所有地址 . 我已经实现了以下功能 .
Google Places API
这仅提供半径内的业务地址 . 它接受radius作为参数 . https://maps.googleapis.com/maps/api/place/textsearch/json?key=myAPIKey&location=6.914701,79.973085&radius=100&sensor=false&hl=en&query=*
Google reverse geocoding
它's just converting given lat & lng to addresses. This doesn'实际上符合我的要求 . 它不接受半径作为参数 . http://maps.googleapis.com/maps/api/geocode/json?latlng=6.914701,79.973085&sensor=false
有没有办法让所有地址在给定的半径范围内 . 特别居住的地址 .
2 回答
您是否考虑过使用OpenStreetMap来完成任务?在Overpass API的帮助下,您可以查询给定bounding box内的所有数据 . 例如,this query返回在您提到的区域内具有门牌号的所有地址 . 它仅在后台使用overpass turbo进行可视化和Overpass API,当然您也可以直接使用Overpass API将原始数据作为XML或JSON返回 .
但是因为您的区域在OSM中只有稀疏地映射的门牌号码,所以还没有多少回报 . 其他更好的映射区域将更好地工作,但如果你愿意,你可以尝试improve your area .
有关如何修改给定查询的更多信息,请查看commonly used tags和Overpass API language guide .
你可以强制谷歌 Map api,例如你可以使用一个点的间隔,例如在某个半径内每8°度一次,并评估来自谷歌 Map 地理编码API的json响应 . 但由于良好的隐私原因,Google Map 地理编码API不支持与地方API相同的功能 . 在这里阅读类似的问题:Map of all points below a certain time of travel? .