我有一个找到用户输入位置的函数<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();
}
}
答案 0 :(得分:1)
检索完当前位置(纬度,经度)后,您可以使用Places API Web Service的nearbysearch
来搜索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
)。这将返回与您的搜索匹配的地方,并将包括每个地点的附近。
我希望这能为您提供一些如何进行的建议。请试一试,如果有帮助,请告诉我。