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

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

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

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

  1. package eoe.demo;    
  2. import com.mapdigit.gis.DigitalMap;    
  3. import com.mapdigit.gis.MapPoint;    
  4. import com.mapdigit.gis.geometry.GeoLatLng;    
  5. import com.mapdigit.gis.service.IIpAddressGeocodingListener;    
  6. import com.mapdigit.gis.service.IpAddressLocation;    
  7. import com.pstreets.gisengine.R;    
  8. import com.pstreets.gisengine.SharedMapInstance;    
  9. import android.app.Activity;    
  10. import android.os.Bundle;    
  11. import android.view.Menu;    
  12. import android.view.MenuInflater;    
  13. import android.view.MenuItem;    
  14. public class MapIpSearch extends Activity implements   
  15. IIpAddressGeocodingListener {    
  16. @Override   
  17. public void onCreate(Bundle savedInstanceState) {    
  18. super.onCreate(savedInstanceState);    
  19. setContentView(R.layout.main);    
  20. }    
  21. @Override   
  22. public void onStart() {    
  23. super.onStart();    
  24. GeoLatLng center = new GeoLatLng(32.0616667118.7777778);    
  25. SharedMapInstance.map.setCenter(center, 15,    
  26. com.mapdigit.gis.raster.MapType.MICROSOFTCHINA);    
  27. SharedMapInstance.map.setIpAddressGeocodingListener(this);    
  28. }    
  29. @Override   
  30. public boolean onCreateOptionsMenu(Menu menu) {    
  31. MenuInflater inflater = getMenuInflater();    
  32. inflater.inflate(R.menu.mapgeocoding_menu, menu);    
  33. return true;    
  34. }    
  35. @Override   
  36. public boolean onOptionsItemSelected(MenuItem item) {    
  37. switch (item.getItemId()) {    
  38. case R.id.findaddress:    
  39. SharedMapInstance.map.getIpLocations("58.192.32.1");    
  40. return true;    
  41. default:    
  42. return super.onOptionsItemSelected(item);    
  43. }    
  44. }    
  45. @Override   
  46. public void done(String query, IpAddressLocation result) {    
  47. if (result != null && result.error.length() == 0   
  48. && result.longitude.length() > 0   
  49. && result.longitude.length() > 0) {    
  50. try {    
  51. MapPoint mapPoint = new MapPoint();    
  52. String latLng = "[" + result.longitude + "," + result.latitude+ ",0]";    
  53. mapPoint.point = DigitalMap.fromStringToLatLng(latLng);    
  54. mapPoint.setName(result.organization);    
  55. mapPoint.setNote(result.city + " " + result.country);    
  56. SharedMapInstance.map.panTo(mapPoint.point);    
  57. catch (Exception e) {    
  58. result.error = "IP_NOT_FOUND";    
  59. }    
  60. }    
  61. }    
  62. @Override   
  63. public void readProgress(int bytes, int total) {    
  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地址安全工具

2011-10-21 09:28:25

百度地图API

2012-02-01 09:33:36

百度地图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地址子网掩码监控网络系统

2010-06-13 14:18:24

TCP IP协议
点赞
收藏

51CTO技术栈公众号