查找附近的地方

时间:2016-06-15 18:33:11

标签: java android google-maps geolocation location

我有一个找到用户输入位置的函数<CFMAILPARAM FILE="#OriginalFile#" DISPOSITION="attachment; filename=""#AttachFile#"""> 。我希望此功能能够找到用户当前位置附近的位置。有人可以帮忙吗?

当我致电geoLocate()时,我希望找到最接近用户位置的麦当劳。

geoLocate("McDonald's")

查找当前位置以供参考:

public void geoLocate(String searchString) throws IOException {
    Geocoder gc = new Geocoder(this);
    List<Address> list = gc.getFromLocationName(searchString, 3);

    if (list.size() > 0) {
        android.location.Address add = list.get(0);
        String locality = add.getLocality();
        Toast.makeText(this, "Found: " + locality, Toast.LENGTH_SHORT).show();

        double lat = add.getLatitude();
        double lng = add.getLongitude();
        gotoLocation(lat, lng, 17);

        if (marker != null) {
            marker.remove();
        }
        MarkerOptions options = new MarkerOptions().title(locality).position(new LatLng(lat, lng));
        marker = mMap.addMarker(options);

    } else {
        Toast.makeText(this, "No results found for: " + searchString, Toast.LENGTH_LONG).show();
    }
}

1 个答案:

答案 0 :(得分:1)

检索完当前位置(纬度,经度)后,您可以使用Places API Web Servicenearbysearch来搜索McDonnald,如下所示: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=lat,lon&radius=500&type=restaurant&name=mcdonalds&key=YOUR_API_KEY。您实际上可以使用StringBuilder构建此网址,如下所示:

 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("&types=" + type);
 googlePlacesUrl.append("&name=mcdonalds");
 googlePlacesUrl.append("&key=" + YOUR_GOOGLE_API_KEY);

然后使用您选择的HTTP客户端向网址发出HTTP请求,然后处理结果(JSON)。这将返回与您的搜索匹配的地方,并将包括每个地点的附近。

我希望这能为您提供一些如何进行的建议。请试一试,如果有帮助,请告诉我。