【发布时间】:2014-09-30 10:05:21
【问题描述】:
我的概念是,当在谷歌地图中搜索地点时,这个地点图像被添加到标记中,标记是图像视图,我使用来自这个链接的搜索位置代码 http://wptrafficanalyzer.in/blog/android-geocoding-showing-user-input-location-on-google-map-android-api-v2/ 并在此代码中使用欧文标记,即图像视图。那么我如何添加图像
公共类 GeocoderTask 扩展 AsyncTask>{
@Override
protected List<Address> doInBackground(String... locationName) {
// Creating an instance of Geocoder class
Geocoder geocoder = new Geocoder(getBaseContext());
List<Address> addresses = null;
respo=myServiceToHttp.makeServiceCall("https://maps.googleapis.com/maps/api/place/textsearch/json?query="+addresses+"&key=Your Server KEy", MyServiceToHttp.GET);
System.out.println("MyGeocoderTask.doInBackground()------Image---->"+respo);
try {
String placeid=null;
JSONObject jsonObject=new JSONObject(respo);
JSONArray array=jsonObject.getJSONArray("results");
//System.out.println("GeocoderTask.doInBackground()---------->"+array);
for (int j = 0; j < array.length(); j++) {
JSONObject jsonObject2= array.getJSONObject(j);
placeid=jsonObject2.getString("place_id");
System.out.println("GeocoderTask.doInBackground()------PlaceID-->"+placeid);
respo2=myServiceToHttp.makeServiceCall("https://maps.googleapis.com/maps/api/place/details/json?placeid="+placeid+"&key=Your Server KEy", MyServiceToHttp.GET);
System.out.println("Response2-->>>>" +respo2);
}
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
// Getting a maximum of 3 Address that matches the input text
addresses = geocoder.getFromLocationName(locationName[0],4);
}catch (IOException e) {
e.printStackTrace();
}
return addresses;
}
@Override
protected void onPostExecute(List<Address> addresses) {
if(addresses==null || addresses.size()==0){
Toast.makeText(getBaseContext(), "No Location found", Toast.LENGTH_SHORT).show();
}
// Clears all the existing markers on the map
googleMap.clear();
// Adding Markers on Google Map for each matching address
for(int i=0;i<addresses.size();i++){
Address address = (Address) addresses.get(i);
// Creating an instance of GeoPoint, to display in Google Map
latLng = new LatLng(address.getLatitude(), address.getLongitude());
String addressText = String.format("%s, %s, %s,%s",
address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(1) : "",
address.getThoroughfare(),
// Locality is usually a city
address.getLocality(),
// The country of the address
address.getCountryName());
marker = new MarkerOptions();
marker.position(latLng);
marker.title(addressText);
//googleMap.addMarker(marker);
// Locate the first location
if(i==0)
googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
}
}
【问题讨论】:
-
这是我的方式 respo 是 exicute 并显示地址响应,但它总是显示 canda 区域响应
标签: android google-maps google-places-api google-geocoding-api