大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Android技巧 > Android中由IP地址查询经纬度坐标的实例

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

关键词:IP地址 查询经纬度坐标 Android  阅读(820) 赞(17)

[摘要]本文是对Android中由IP地址查询经纬度坐标的实例的讲解,对学习Android编程技术有所帮助,与大家分享。

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

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

Java代码
  1. packageeoe.demo;
  2. importcom.mapdigit.gis.DigitalMap;
  3. importcom.mapdigit.gis.MapPoint;
  4. importcom.mapdigit.gis.geometry.GeoLatLng;
  5. importcom.mapdigit.gis.service.IIpAddressGeocodingListener;
  6. importcom.mapdigit.gis.service.IpAddressLocation;
  7. importcom.pstreets.gisengine.R;
  8. importcom.pstreets.gisengine.SharedMapInstance;
  9. importandroid.app.Activity;
  10. importandroid.os.Bundle;
  11. importandroid.view.Menu;
  12. importandroid.view.MenuInflater;
  13. importandroid.view.MenuItem;
  14. publicclassMapIpSearchextendsActivityimplements
  15. IIpAddressGeocodingListener{
  16. @Override
  17. publicvoidonCreate(BundlesavedInstanceState){
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main);
  20. }
  21. @Override
  22. publicvoidonStart(){
  23. super.onStart();
  24. GeoLatLngcenter=newGeoLatLng(32.0616667,118.7777778);
  25. SharedMapInstance.map.setCenter(center,15,
  26. com.mapdigit.gis.raster.MapType.MICROSOFTCHINA);
  27. SharedMapInstance.map.setIpAddressGeocodingListener(this);
  28. }
  29. @Override
  30. publicbooleanonCreateOptionsMenu(Menumenu){
  31. MenuInflaterinflater=getMenuInflater();
  32. inflater.inflate(R.menu.mapgeocoding_menu,menu);
  33. returntrue;
  34. }
  35. @Override
  36. publicbooleanonOptionsItemSelected(MenuItemitem){
  37. switch(item.getItemId()){
  38. caseR.id.findaddress:
  39. SharedMapInstance.map.getIpLocations("58.192.32.1");
  40. returntrue;
  41. default:
  42. returnsuper.onOptionsItemSelected(item);
  43. }
  44. }
  45. @Override
  46. publicvoiddone(Stringquery,IpAddressLocationresult){
  47. if(result!=null&&result.error.length()==0
  48. &&result.longitude.length()>0
  49. &&result.longitude.length()>0){
  50. try{
  51. MapPointmapPoint=newMapPoint();
  52. StringlatLng="["+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(Exceptione){
  58. result.error="IP_NOT_FOUND";
  59. }
  60. }
  61. }
  62. @Override
  63. publicvoidreadProgress(intbytes,inttotal){
  64. }
  65. }


相关评论