• 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. }  
  • 相关阅读:
    ubuntu修改文件访问权限
    ubuntu使用root账户登录
    centos7 列出所有系统服务
    virtualbox 虚拟机硬盘扩容
    CI的意思
    更改centos 7 的默认启动为命令界面
    git Staging Deleted files
    Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
    List of data structures:数据结构大全
    List of algorithms:算法大全
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/3829496.html
Copyright © 2020-2023  润新知