谷歌地点API,想要获取最近的位置。

4

你好,我想使用谷歌地点API来搜索最近的位置...

参考https://developers.google.com/places/documentation/supported_types,我在我的代码中使用了类型来搜索最近的地点...

以下是代码:

try {
     double radius = 5000; // 10000 meters
    // get nearest places
    nearPlaces = googlePlaces
                    .search(gps.getLatitude(), gps.getLongitude(), radius,
                            "sublocality|sublocality_level_4|sublocality_level_5|sublocality_level_3|sublocality_level_2|sublocality_level_1|neighborhood|locality|sublocality");

    } catch (Exception e) {
    e.printStackTrace();
    }
 return null;
}

但是找不到最近的地方

例如,如果我在“美国加利福尼亚州圣迭戈”,那么我想要得到以下结果:

煤气灯/市中心区,
太平洋海滩,
海洋海滩,
上城区,
希尔克雷斯特,
米田谷,
时尚谷,
北公园,

但是现在我只能得到两个值:

Mission Valley East,
Serra Mesa

所以有人能帮助我传递哪种类型,这样我就可以得到上面的结果而不是下面的结果吗?

3个回答

5

我的先前回答因未知原因被管理员删除了,我现在再发一遍并加上更多的背景信息,因为这是目前正确的答案:

看起来你正在尝试返回附近的地理位置(从支持的地点类型列表中的第二个列表中选取)。不幸的是,Places API 并不是为此而设计的,它的设计是返回附近场所的列表(从支持的地点类型列表中的第一个列表中选取),并且最多会返回两个localitypolitical类型的结果,以帮助识别您进行 Place Search 请求的区域。

文档中已经说明了这一点:https://developers.google.com/places/documentation/search#PlaceSearchResponses

"results" 包含 Places 数组,每个数组包含有关该地点的信息。有关这些结果的信息,请参见 Place Search Results。Places API 每次查询最多返回 20 个场所结果。此外,可能会返回政治结果,用于确定请求区域。

如果您通过地理位置类型,如localitypolitical过滤您的 Place Search 请求,则会过滤掉场所结果,并仅保留区域标识结果。

已在此处提交了一个 Places API - Feature Request,以返回附近的地方: http://code.google.com/p/gmaps-api-issues/issues/detail?id=4434

如果您认为这将是一个有用的功能,请确保点亮请求以让我们知道您有兴趣看到它被添加。


你好Chris,如果我想要找到特定的位置,我可以使用这样的方式吗:“Ocean Beach, San Diego, CA, United States”?因为如果我只尝试搜索“Ocean Beach”,会返回许多名为“Ocean Beach”的地方,所以我必须像这样搜索:“Ocean Beach, San Diego, CA, United States”,但是没有找到任何地方。 - Siddhpura Amit

0

双倍半径为5000,相当于5公里,略大于3英里。 如果您增加半径,应该返回更多的地点。


1
我已经增加到50,000,但仍然存在相同的问题 :( - Siddhpura Amit

0

您应该考虑到最大50公里的距离,以下是不同类型:

机构、住宿、温泉、酒吧、教堂、礼拜场所等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接