Android中由IP地址查询经纬度坐标的实例,android 获取经纬度

日期:2019-01-28 编辑:环亚

Android中由IP地址查询经纬度坐标的实例,android 获取经纬度
Android中由IP地址查询经纬度坐标的实例

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

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

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

 


帮我根据IP地址查询实际经纬度很遗憾做不到,你要知道有的时候IP地址是动态分配的,一个城市或者一个省份的IP地址不是固定在一个地区使用的。比如家用ADSL就是最典型的动态分配IP地址的哦,你这一会使用的IP地址当你关机以后可能就会分配给其他人使用,所以相应经纬度也是无法直接确定的。但是呢,有一种情况是可以确定的,那就是这个人使用的是固定IP。其实,如果想查到具体使用IP的地址也不是不可以,你可以给重庆的服务商打电话,让他们告诉你这个IP在此时此刻被哪个用户占用着,他登记的使用地址是什么地方,可是你也要知道,服务商是不会给你透露客户的登记信息的,因为他们有相关的隐私保护条款。
总结一句话,就是查不到。。。。。。
换个方法吧
通过IP查当时IP使用所在的经纬度http://dir.twseo.org/ip-check.php 。望采纳。

http://www.bkjia.com/Androidjc/827799.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/827799.htmlTechArticleAndroid中由IP地址查询经纬度坐标的实例,android 获取经纬度 Android中由IP地址查询经纬度坐标的实例 大家都知道,根据IP地址就可以知道它所...

本文源自: AG环亚官网