Google 地图 API return 搜索结果不正确
Google map API return incorrect result for searches
我是 android 编码新手,我正在尝试使用 google 地图 API 显示附近的地点。
我的代码是:
public void onClick(View v) {
mMap.clear();
String search = "cvs"
String url = getUrl(latitude, longitude, search);
Object[] dataTransfer = new Object[2];
dataTransfer[0] = mMap;
dataTransfer[1] = url;
GetNearbyData getNearbyData = new GetNearbyData();
getNearbyData.execute(dataTransfer);
}
private String getUrl(double latitude, double longitude, String
nearbyPlace) {
StringBuilder googlePlacesUrl = new
StringBuilder("https://maps.googleapis.com/maps/api/place/nearbysearch/json?");
googlePlacesUrl.append("location=" + latitude + "," + longitude);
googlePlacesUrl.append("&radius=" + PROXIMITY_RADIUS);
googlePlacesUrl.append("&type=" + nearbyPlace);
googlePlacesUrl.append("&sensor=true");
googlePlacesUrl.append("&key=" + "{MY_KEY}");
return (googlePlacesUrl.toString());
}
URL 输出是:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494,-73.9842065&radius=10000&type=cvs&sensor=true&key={MY_KEY}
当我更改搜索词时,问题就开始了,当我输入(在 URL 类型下)cvs/parks/starbucks...(可能还有其他地方)时,我总是得到相同的结果。例如:如果我的位置是纽约中央公园,我会不断获得以下结果
克莱斯勒大厦
宾夕法尼亚酒店
哈德逊纽约等。
那些宫殿与我的搜索词无关(cvs/parks/starbucks...)
重要的是,对于银行,我确实得到了银行的结果。
谁能告诉我如何解决这个问题?为什么有些词我能得到正确的结果而有些词却不能?
谢谢
请注意,cvs
、parks
或 starbucks
中的 none 属于可在附近搜索中使用的支持类型列表。您可以在官方 Places API 文档中查阅支持的类型列表:
https://developers.google.com/places/supported_types
我相信您在构造 URL 时必须使用 keyword
参数而不是 type
参数。
keyword — A term to be matched against all content that Google has indexed for this place, including but not limited to name, type, and address, as well as customer reviews and other third-party content.
来源:https://developers.google.com/places/web-service/search#PlaceSearchRequests
例如,如果我搜索 'cvs'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=cvs&key=MY_API_KEY
我可以看到与此搜索相关的地点,如我的屏幕截图所示
搜索 'parks'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=parks&key=MY_API_KEY
给我以下结果
最后搜索'starbucks'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=starbucks&key=MY_API_KEY
returns 个星巴克地点
希望对您有所帮助!
我是 android 编码新手,我正在尝试使用 google 地图 API 显示附近的地点。
我的代码是:
public void onClick(View v) {
mMap.clear();
String search = "cvs"
String url = getUrl(latitude, longitude, search);
Object[] dataTransfer = new Object[2];
dataTransfer[0] = mMap;
dataTransfer[1] = url;
GetNearbyData getNearbyData = new GetNearbyData();
getNearbyData.execute(dataTransfer);
}
private String getUrl(double latitude, double longitude, String
nearbyPlace) {
StringBuilder googlePlacesUrl = new
StringBuilder("https://maps.googleapis.com/maps/api/place/nearbysearch/json?");
googlePlacesUrl.append("location=" + latitude + "," + longitude);
googlePlacesUrl.append("&radius=" + PROXIMITY_RADIUS);
googlePlacesUrl.append("&type=" + nearbyPlace);
googlePlacesUrl.append("&sensor=true");
googlePlacesUrl.append("&key=" + "{MY_KEY}");
return (googlePlacesUrl.toString());
}
URL 输出是: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494,-73.9842065&radius=10000&type=cvs&sensor=true&key={MY_KEY}
当我更改搜索词时,问题就开始了,当我输入(在 URL 类型下)cvs/parks/starbucks...(可能还有其他地方)时,我总是得到相同的结果。例如:如果我的位置是纽约中央公园,我会不断获得以下结果 克莱斯勒大厦 宾夕法尼亚酒店 哈德逊纽约等。 那些宫殿与我的搜索词无关(cvs/parks/starbucks...) 重要的是,对于银行,我确实得到了银行的结果。
谁能告诉我如何解决这个问题?为什么有些词我能得到正确的结果而有些词却不能?
谢谢
请注意,cvs
、parks
或 starbucks
中的 none 属于可在附近搜索中使用的支持类型列表。您可以在官方 Places API 文档中查阅支持的类型列表:
https://developers.google.com/places/supported_types
我相信您在构造 URL 时必须使用 keyword
参数而不是 type
参数。
keyword — A term to be matched against all content that Google has indexed for this place, including but not limited to name, type, and address, as well as customer reviews and other third-party content.
来源:https://developers.google.com/places/web-service/search#PlaceSearchRequests
例如,如果我搜索 'cvs'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=cvs&key=MY_API_KEY
我可以看到与此搜索相关的地点,如我的屏幕截图所示
搜索 'parks'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=parks&key=MY_API_KEY
给我以下结果
最后搜索'starbucks'
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=starbucks&key=MY_API_KEY
returns 个星巴克地点
希望对您有所帮助!