Google地图API会返回不正确的搜索结果

时间:2018-02-03 21:42:02

标签: android google-maps android-studio google-places-api google-maps-android-api-2

我是Android新手,我正在尝试使用谷歌地图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());
    }

网址输出为: Secure your Kubernetes production cluster {MY_KEY}

当我更改搜索词时,问题就开始了,当我把(在URL类型下)cvs / parks / starbucks ...(可能还有其他地方)时,我一直得到相同的结果。例如:如果我的位置是纽约中央公园,我会继续获得结果 克莱斯勒大厦 宾州酒店 哈德森纽约等等。 那些宫殿与我的搜索词无关(cvs / parks / starbucks ......) 重要的是,对银行而言,我确实得到银行的结果。

有谁能解释我如何解决这个问题?为什么有些话我得到了正确的结果,而对于其他的我没有?

由于

1 个答案:

答案 0 :(得分:1)

请注意,cvsparksstarbucks都不属于您可以在附近搜索中使用的受支持类型列表。您可以在官方Places API文档中查阅支持的类型列表:

https://developers.google.com/places/supported_types

我认为在构造网址而不是keyword参数时必须使用type参数。

  

关键字 - 与Google为此地点编入索引的所有内容匹配的字词,包括但不限于姓名,类型和地址,以及客户评论和其他第三方内容。

来源: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

我可以看到与此搜索相关的地点,如我的屏幕截图所示

enter image description here

搜索“公园”

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=parks&key=MY_API_KEY

给我以下结果

enter image description here

最后搜索'starbucks'

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7692494%2C-73.9842065&radius=10000&keyword=starbucks&key=MY_API_KEY

返回星巴克的地方

enter image description here

我希望这有帮助!