Android引路蜂地图开发示例:地址反编码

地址反编码是通过经纬度查询对应的地名,下面示例是查询经纬度为118.777802, 32.061699对应的地名,结果为”中国江苏省南京市鼓楼区渊声巷41号”。

package com.pstreets.gisengine.demo; 
  
import com.mapdigit.gis.DigitalMap; 
import com.mapdigit.gis.MapPoint; 
import com.mapdigit.gis.geometry.GeoLatLng; 
import com.mapdigit.gis.service.IReverseGeocodingListener; 
import com.mapdigit.gis.service.IpAddressLocation; 
import com.pstreets.gisengine.R; 
import com.pstreets.gisengine.SharedMapInstance; 
  
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
  
public class MapReverseGeocoding extends Activity implements
    IReverseGeocodingListener { 
  
 @Override
 public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 
 } 
  
 @Override
 public void onStart() { 
  super.onStart(); 
  GeoLatLng center = new GeoLatLng(32.0616667, 118.7777778); 
  SharedMapInstance.map.setCenter(center, 15, 
    com.mapdigit.gis.raster.MapType.MICROSOFTCHINA); 
  SharedMapInstance.map.setReverseGeocodingListener(this); 
  
 } 
  
 @Override
 public boolean onCreateOptionsMenu(Menu menu) { 
  MenuInflater inflater = getMenuInflater(); 
  inflater.inflate(R.menu.mapgeocoding_menu, menu); 
  return true; 
 } 
  
 @Override
 public boolean onOptionsItemSelected(MenuItem item) { 
  // Handle item selection 
  switch (item.getItemId()) { 
  case R.id.findaddress: 
   SharedMapInstance.map.getReverseLocations("32.061699,118.777802"); 
   return true; 
  
  default: 
   return super.onOptionsItemSelected(item); 
  } 
  
 } 
  
 @Override
 public void done(String arg0, MapPoint[] result) { 
        if (result != null) { 
         SharedMapInstance.map.panTo(result[0].getPoint()); 
        } 
    } 
  
 @Override
 public void readProgress(int bytes, int total) { 
  
 } 
  
}


注意使用字符串经纬度格式时,纬度在前,经度在后,如果反了,则返回的地名或能为空或都跑到外国去了。结果也是一个数组,一般到第一个结果,后面结果是更大的区域或是距离相对较远的地名。

Android引路蜂地图开发包Ver2.1下载

你可能感兴趣的:(android)