我目前正在开发一款Android应用程序,该应用程序可以返回离用户位置最近的位置,以满足用户的指定偏好(披萨、咖啡、酒吧等)。为了做到这一点,我在谷歌地方API中使用附近搜索请求。这就是我构建HTTP请求的方式:
public String createRequestURL() {
String requestURL = "";
if ((googleApiKey != "") && (lat <= MAX_GOOGLE_LAT) && (lat >= MIN_GOOGLE_LAT)
&& (lng <= MAX_GOOGLE_LNG) && (lng >= MIN_GOOGLE_LNG)) {
requestURL += "https://maps.googleapis.com/maps/api/place/nearbysearch/json?";
requestURL += "location=" + lat + "," + lng;
requestURL += "&rankby=distance";
requestURL += "&keyword=" + keyword;
requestURL += "&opennow";
requestURL += "&key=" + googleApiKey;
}
return requestURL;
}
我试图执行的测试查询是lat=45.5017,lng=73.5673,关键字="pizza",即查找蒙特利尔附近所有现在营业的披萨店。
当我执行对API的查询时,我会一直返回ZERO_RESULTS
状态。我以前使用过radius
字段,但后来在stackoverflow上阅读了这个问答,似乎在查询中使用rankby
,然后在我的应用程序中删除所有超过X米的查询响应更适合我希望我的应用。
为什么我要返回ZERO_RESULTS
状态,而不是我所在位置附近的披萨、咖啡、酒吧等地方?
编辑:
我也尝试了以下请求:
public String createRequestURL() {
String requestURL = "";
if ((googleApiKey != "") && (lat <= MAX_GOOGLE_LAT) && (lat >= MIN_GOOGLE_LAT)
&& (lng <= MAX_GOOGLE_LNG) && (lng >= MIN_GOOGLE_LNG)) {
requestURL += "https://maps.googleapis.com/maps/api/place/nearbysearch/json?";
requestURL += "location=" + lat + "," + lng;
requestURL += "&rankby=distance";
requestURL += "&types=food";
requestURL += "&key=" + googleApiKey;
}
return requestURL;
}
并且这个简单的请求仍然返回状态ZERO_RESULTS
。
将lng=-73.5673更改为蒙特利尔。