zoukankan      html  css  js  c++  java
  • 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. }  
  • 相关阅读:
    ecshop后台新建一个模块,添加分页
    Mysql中设置远程访问的方法
    Thinkphp 3.2中文章详情页的上一篇 下一篇文章功能
    Thinkphp 3.2.2 利用phpexcel完成excel导出功能
    Thinkphp 3.2中字符串截取
    服务管理-文件服务器
    nginx-伤心的事
    shell-awk
    shell-sed
    shell-函数、数组、正则
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3829496.html
Copyright © 2011-2022 走看看