通常情况下,当用户按特定位置搜索商家时,他们可能会在搜索框中不知不觉地输入一个社区名称,认为这是一个城市,但从法律上讲,它只是一个社区,Google API会将其映射到实际的城市中心。问题是,在大城市,这两个地点(邻里中心和市中心)可能相距很远。例如,如果我搜索 Porter Ranch,CA ,则Google API会返回洛杉矶,CA ,但这两个位置(基于纬度/经度计算)相距约23英里,显然不是用户打算看到的内容。
有趣的是,Google地图知道Porter Ranch,如果我搜索“Porter Ranch”,它会放大Porter Ranch。此外,如果我在Porter Ranch中搜索特定地址,结果将被列为123 Main St,Porter Ranch,CA,而非加利福尼亚州洛杉矶。
所以我的问题是,有没有办法告诉Google API返回 邻居 的纬度/经度,例如Porter Ranch,而不是城市?我希望有一种方法可以使用API,因为它适用于地图。
编辑:
Java示例:
GeoApiContext context = new GeoApiContext().setApiKey("xyz");
results = GeoCodingApi.geocode(context, "Porter Ranch, CA").await;
答案 0 :(得分:0)
当我为'Porter Ranch,CA'执行地理编码请求时,我可以看到响应中的坐标(34.2822134,-118.5506158)完全集中在这个邻域上。
https://maps.googleapis.com/maps/api/geocode/json?address=Porter%20Ranch%2C%20CA&key=YOUR_API_KEY
查看我的截图
或在Geocoder工具中自行检查:
所以,我看不到标记位置的任何问题,但是,格式化的地址确实不包含邻域的名称。
我能想到的独特解决方法是从第一个请求执行带邻域和坐标的反向地理编码:
https://maps.googleapis.com/maps/api/geocode/json?latlng=34.2822134%2C-118.5506158&result_type=neighborhood&key=YOUR_API_KEY
在这种情况下,您将在格式化的地址字符串中获得邻域名称,如以下屏幕截图所示:
我希望这有帮助!