您的位置:首页 > 移动开发 > Android开发

Android引路蜂地图开发示例:IP地址查询

2012-07-05 11:04 411 查看
IP地址查询,可以根据IP地址查询到该IP所在的地理经纬度坐标,比如下述例子查询IP 地址58.192.32.1,所在经纬度为118.777802,32.061699,为南京大学所在地。

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.IIpAddressGeocodingListener; 
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 MapIpSearch extends Activity implements
  IIpAddressGeocodingListener { 
  
 @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.setIpAddressGeocodingListener(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.getIpLocations("58.192.32.1"); 
   return true; 
  
  default: 
   return super.onOptionsItemSelected(item); 
  } 
  
 } 
  
 @Override
 public void done(String query, IpAddressLocation result) { 
  if (result != null && result.error.length() == 0
    && result.longitude.length() > 0
    && result.longitude.length() > 0) { 
   try { 
  
    MapPoint mapPoint = new MapPoint(); 
    String latLng = "[" + result.longitude + "," + result.latitude 
      + ",0]"; 
    mapPoint.point = DigitalMap.fromStringToLatLng(latLng); 
    mapPoint.setName(result.organization); 
    mapPoint.setNote(result.city + " " + result.country); 
    SharedMapInstance.map.panTo(mapPoint.point); 
   } catch (Exception e) { 
  
    result.error = "IP_NOT_FOUND"; 
   } 
  } 
  
 } 
  
 @Override
 public void readProgress(int bytes, int total) { 
  
 } 
  
}


注:目前IP查询结果总是以英文返回,如上述结果详细内容。

ISP:”China Education and Research Network”

Organization: “Nan Jing University”

Country: “CN”

City: “Nanjing”

若想知道该经纬度对应的地名,可以使用地址反编码服务。

你可以输入 127.0.0.1 查询本机地址。

Android引路蜂地图开发包Ver2.1下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: