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...) 重要的是,对于银行,我确实得到了银行的结果。

谁能告诉我如何解决这个问题?为什么有些词我能得到正确的结果而有些词却不能?

谢谢

请注意,cvsparksstarbucks 中的 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 个星巴克地点

希望对您有所帮助!