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

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

Java代码
  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.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. 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. }

Android中由IP地址查询经纬度坐标的实例的更多相关文章

  1. python实现ip地址查询经纬度定位

    1.此api已经关闭 https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&ak=你申请的AK&extension ...

  2. [1]IP地址查询

    今天起开始玩百度APIStore里面的免费API.以前用过的有12306的:数据.接口,有时间整理出来,12306的有点乱就是了.还有扇贝以及有道的API,之前用在留言板里自动翻译,公司用过百度地图以 ...

  3. 齐全的IP地址查询接口及调用方法(转)

    设计蜂巢IP地址查询接口:http://www.hujuntao.com/api/ip/ip.php 腾讯IP地址查询接口:http://fw.qq.com/ipaddress 新浪IP地址查询接口: ...

  4. 微信小程序开发-IP地址查询-例子

    微信小程序开发  小程序搜索框  IP地址查询  搜索查询  样例 微信小程序 开发 参考   https://mp.weixin.qq.com/debug/wxadoc/dev/component/ ...

  5. 百度地图API 根据地址查询经纬度

    html页面.引用上API: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> ...

  6. 百度地图API简单应用——1.根据地址查询经纬度

    这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的.只要简单几步注册下,就可以获得一个Key,就能直接调用(P ...

  7. 通过Web Service实现IP地址查询功能

    实例01 实现一个简单的Web服务访问 本实例将实现IP地址查询接口服务,根据用户传入的IP地址返回IP所在的省.市.地区,实例中将会用到IP地址库用于查询信息,由于数据较多,所以读者可在光盘资源文件 ...

  8. ip地址查询python3小工具_V0.0.1

    看到同事在一个一个IP地址的百度来确认导出表格中的ip地址所对应的现实世界的地址是否正确,决定给自己新开一个坑.做一个查询ip“地址”的python小工具,读取Excel表格,在表格中的后续列输出尽可 ...

  9. QQ IP 地址查询相关

    1.QQwry.dat格式分析和查询IP位置的PHP程序 以前的追捕数据库太大,而且很久没有更新了. 所以我想到利用QQwry.dat这个文件查询IP所在位置,QQwry.dat 在很多地方都能找到, ...

随机推荐

  1. 数据结构———KMP

    今天照着课本敲了一下KMP.. 以OJ上的一个题为例敲了一下.. 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem& ...

  2. UVALive 3713 Astronauts (2-SAT,变形)

    题意: 有A,B,C三种任务,每个人必获得1个任务,大于等于平均年龄的可以选择A和C,小于平均年龄的可以选择B和C.这些人有一些是互相讨厌的,必须不能执行同任务,问能否安排他们工作?若行,输出任意一组 ...

  3. 使用MySQL

    安装MySQL驱动 使用vpn $ pip install mysql-connector-python --allow-external mysql-connector-python import ...

  4. Java [leetcode 28]Implement strStr()

    题目描述: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if ...

  5. 【转】google play上传应用

    原文网址:https://support.google.com/googleplay/android-developer/answer/113469?hl=zh-Hans 注册 Google Play ...

  6. 【转】 C++中如何在一个构造函数中调用另一个构造函数

    在C++中,一个类的构造函数没法直接调用另一个构造函数,比如: #ifndef _A_H_ #define _A_H_ #include <stdio.h> #include <ne ...

  7. Entity Framework中查看生成的SQL语句

    Entity Framework 4.0 中是这样的,高版本的跟这个有些差异,不太一样,貌似已经到7了 using (Entities entities = new Entities()) { var ...

  8. TCP服务端和客户端的框架

    提供一个框架服务器端: 创建一个Socket sFd=socket(AF_INET,SOCK_STREAM,0) 把Socket和本机的IP,TCP口绑定 bind(sFd,(structsockad ...

  9. 【转】linux trap

    在有些情况下,我们不希望自己的shell脚本在运行时刻被中断,比如说我们写得shell脚 本设为某一用户的默认shell,使这一用户进入系统后只能作某一项工作,如数据库备份, 我 们可不希望用户使用c ...

  10. c# DataTable中使用排序的时候注意事项

    背景: 在项目使用DataTable的时候,使用到了其中ExtendedProperties的属性,但是之后出了问题:在排序之后ExtendedProperties的自定义的键值丢失了,代码如下: 误 ...