我需要找到给定半径内的所有地址。我已经实现了以下功能。
Google Places API
这仅提供radius内的业务地址。它接受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反向地理编码
它只是转换给定的lat& lng到地址。这实际上并不符合我的要求。并且它不接受radius作为参数。 http://maps.googleapis.com/maps/api/geocode/json?latlng=6.914701,79.973085&sensor=false
有没有办法让所有地址都在给定的半径范围内。特别居住的地址。
答案 0 :(得分:10)
您是否考虑过使用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。
答案 1 :(得分:1)
你可以强行使用谷歌地图api,例如你可以使用一个点的间隔,例如在某个半径内每8°度一次,并评估来自谷歌地图地理编码API的json响应。但由于良好的隐私原因,Google地图地理编码API不支持与地方API相同的功能。请在此处阅读类似的问题:Map of all points below a certain time of travel?。