Android由IP地址查询经纬度坐标实例

移动开发 Android
本文简单粗暴,直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置。

大家都知道,根据IP地址就可以知道它所在的具体位置,在Android中同样可以由IP地址得到它的位置,即具体的地理经纬度坐标。

本文就直接以代码的方式演示如何根据IP地址查询地理经纬度坐标位置,下面的例子中演示的就是由58.192.32.1这个IP地址查询到其所在的经纬度坐标为(118.777802,32.061699)。

package eoe.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.0616667118.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) {    
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) {    
}    
}   
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.

感兴趣的同学可以试试效果~

责任编辑:闫佳明 来源: jizhuomi
相关推荐

2013-03-29 10:47:39

Android获取经纬AndroidGPS定

2021-04-18 16:34:13

PythonAPI接口

2023-03-13 22:01:15

ChatGPTPython

2012-06-14 09:37:45

Google地图

2023-12-11 07:37:08

mongodb经纬度性能

2023-10-20 16:25:30

Python

2013-04-01 13:19:43

iOS定位与坐标算法

2021-08-08 09:19:18

IPinfogaIP地址安全工具

2012-02-01 09:33:36

百度地图API

2011-10-21 09:28:25

百度地图API

2009-06-19 17:31:59

Java获取IP地址

2021-07-05 08:41:49

RedisGEO系统

2012-08-13 14:03:25

Google Map

2010-06-13 14:26:22

IP协议地址

2014-07-14 13:03:26

2016-10-24 15:44:15

2010-09-13 13:32:18

IP地址冲突

2019-10-09 08:16:19

ip地址子网掩码监控网络系统

2017-11-13 15:46:07

点赞
收藏

51CTO技术栈公众号