- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
目前正在开发一个 Android
应用程序,它返回距离用户当前位置最近的 20 个位置。
Google Places API
返回接近用户位置的约 20 个地点,但不是按距离排序的最近 20 个地点。
查看 Google Places API Documentation没有显示任何我认为不正确的内容。
GetPlaces.java
String types = "accounting|airport|amusement_park|aquarium|art_gallery|atm|bakery|bank|bar|beauty_salon|bicycle_store|book_store|bowling_alley|bus_station|cafe|campground|car_dealer|car_rental|car_repair|car_wash|casino|cemetery|church|city_hall|clothing_store|convenience_store|courthouse|dentist|department_store|doctor|electrician|electronics_store|embassy|establishment|finance|fire_station|florist|food|funeral_home|furniture_store|gas_station|general_contractor|grocery_or_supermarket|gym|hair_care|hardware_store|health|hindu_temple|home_goods_store|hospital|insurance_agency|jewelry_store|laundry|lawyer|library|liquor_store|local_government_office|locksmith|lodging|meal_delivery|meal_takeaway|mosque|movie_rental|movie_theater|moving_company|museum|night_club|painter|park|parking|pet_store|pharmacy|physiotherapist|place_of_worship|plumber|police|post_office|real_estate_agency|restaurant|roofing_contractor|rv_park|school|shoe_store|shopping_mall|spa|stadium|storage|store|subway_station|synagogue|taxi_stand|train_station|travel_agency|university|veterinary_care|zoo";
resourceURI = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location="+myLocation.latitude+","+myLocation.longitude+"&radius=500&rankBy=distance&types="+ URLEncoder.encode(types, "UTF-8")+"&sensor=true&key=GOOGLE_MAPS_KEY";
try {
String url =resourceURI; //getURL(myLocation.latitude,myLocation.longitude);
HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 30000);
HttpConnectionParams.setSoTimeout(httpParams, 30000);
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Content-type", "application/json");
ResponseHandler responseHandler = new BasicResponseHandler();
String response = (String) httpClient.execute(httpGet, responseHandler);
if (response != null) {
mResult = new JSONObject(response);
results = mResult.getJSONArray("results");
}
}
catch (ClientProtocolException e) {
e.printStackTrace();
return null;
}
catch (IOException e) {
e.printStackTrace();
return null;
}
catch (JSONException e) {
e.printStackTrace();
return null;
}
return results;
}
这会返回有效的 JSON,但不会返回距离传入的距离 最近的位置。我知道有比请求返回的更近的地方。
例如,我在一个已知的 google 地点发出请求,但它没有显示我当前所在的地点,而是显示更远的其他地点。
最佳答案
也许你已经解决了你的问题,但我希望这可以帮助(关注粗体部分):
radius - 定义返回地点结果的距离(以米为单位)。最大允许半径为 50 000 米。 请注意,如果指定了 rankby = distance(在下面可选参数下描述),则不得包含半径。
rankby — 指定列出结果的顺序。可能的值是:
突出(默认)。此选项根据结果的重要性对结果进行排序。排名将有利于指定区域内的显着位置。地方在 Google 索引中的排名、您的应用程序的签到次数、全局知名度和其他因素会影响知名度。
距离。此选项按结果与指定位置的距离升序对结果进行排序。指定距离时,需要一个或多个关键字、名称或类型。
根据:https://developers.google.com/places/documentation/search?hl=en
根据谷歌文档,我了解到您不能同时发送参数“rankby”和“radius”,您必须同时仅使用其中一个,这样您将获得按距离排序的结果。
测试请求这样做:
resourceURI = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?
location="+myLocation.latitude+","+myLocation.longitude+"&rankBy=distance
&types="+ URLEncoder.encode (types, "UTF-8") + "&sensor = true&
key = GOOGLE_MAPS_KEY";
看你做的如何,祝你好运!
关于android - Google Places Api 按距离排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726446/
在通过自动完成输入框查找地址时,我试图从城市或地区获取 Place-id。问题是,当我查找任何地址时,我可以获得城市名称和其他一些详细信息(JSON 格式),但是...... 有没有办法直接从第一个查
我将 Place Picker 添加到我的 android 应用程序中。当您知道要选择的地点的地址并填写研究栏时,它就会起作用。但是我希望用户可以在使用红色选择器时选择他选择的位置,而这部分不起作用。
我已将 Jetpack Compose 从 1.1.0-beta03 升级到 1.1.0-beta04,除了需要做一些更改外什么也没发生,但现在我在“DetailScreen”上启动应用程序时出现此错
$(function () { var input = do
我正在使用Google的Place API自动填充用户键入的城市名称(网页)。加载了API,并使用语言(pt-BR)作为参数,并且使用葡萄牙语正确填充了文本框,但是执行方法getPlace()时,它将
如何将Google Place API评论从5增加到所有评论?目前,我只获得google plus商业页面的5条评论,我想获取所有评论! 有人可以帮忙吗? 最佳答案 您可以联系Google:https
https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete 我有一
你们中的许多人都曾在 android 中开发过 LBS 应用程序,并且还使用了 Google Places API Web 服务来获取各个地方的信息。而且您可能还注意到,印度的数据并不准确,这意味着您
我有一个应用程序,它使用地点 API 来帮助查找目的地附近的地点(如伦敦)。我更喜欢在附近使用,因为它可以让我专注于一个区域,而且与文本搜索相比,它也更便宜。 不幸的是,我得到的答案没有多大意义。例如
关闭。这个问题是not about programming or software development .它目前不接受答案。 这个问题似乎不是关于 a specific programming
我正在尝试使用 Google Places api 来搜索位置。但不幸的是,我只收到一条响应请求被拒绝的消息。我创建了新的 API key ,但 API 访问菜单显示了一些警告图标,如下图所示,它是否
Google Place API 未获取特定地址的单位编号。 Example: 3/12 Selwyn Avenue Elwood, 3184, Mel, VIC 但有些地址它正在正确获取单元号。 E
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
我正在为运输行业的客户构建一个网站,我正在使用 Google Places API 获取上车地点和目的地。如果接机地点是机场,则一项要求是显示“航类号”字段。 为了确定机场是否从 Google Map
我正在研究以下内容是否可行,如果可以的话,我将如何实现这一目标。 我们会从客户那里收集企业的评论,并希望将这些评论发布到他们的评论中,并将其发布到Google商家信息中。 我想知道如何使我们的网站将这
我们开发了一个用于构建旅行路线的平台。 行程计划(行程)是由用户定义的流程排序的地点组合而成的。 我们想使用Google Places API搜索地点。我们想存储一个place_id,并用它来获取行程
截至今天(2016年5月25日),Google Places API中似乎不再有user_ratings_total的数据。我用它来获得一家企业的评论总数。是否有另一种方法来获取此数据? 最佳答案 我
有没有办法让 Google Places Autocomplete 仅限于一个国家(如法国)? 我有这个:components=country:fr https://maps.googleapis.c
我正在设置一个自定义自动填充字段,在其中显示Google地方信息中的位置以及数据库中与搜索查询匹配的事件。因此,我使用Google地方信息自动填充服务来获取查询预测,而不是将地方信息自动填充功能直接插
自2014年6月24日起,Google已将reference和id字段标记为已弃用,并将其替换为一个place_id。 到目前为止,我只看到place_id的长度恰好是27个字符,但是想知道是否有任何
我是一名优秀的程序员,十分优秀!