随着国内各大品牌门户网站纷纷推出地图服务,如搜狗地图,百度地图、网易地图等,地图的应用变得越来越广泛,同时,很多网站管理员都将地图服务加入到自己的网站中,增添不少特色,当然,也给使用的人提供了很多方便。最近本人一时兴起,利用google map api实现了通过来访者的IP定位google地图,同时提供对IP、域名归属地查询服务。国内也有比较多提供地图服务的API,例如:51ditu,mapbar等,选择google map api的原因是其应用的广泛性,而且其最新版本提供了更多更好的功能,不过还处于测试阶段。有兴趣的朋友可以上网搜索一下其相关资料。下面我将如何实现IP定位功能和大家交流一下。
要想使用google map api,首先得获取Google地图API的密钥,获取网址为:http://code.google.com/intl/zh-CN/apis/maps/signup.html,这一过程中,如果没有google帐户的话,还得注册用户。
获取到密钥之后接着下来利用它实现最简单的hello world网页,google提供了很多示例,大家可以访问这个网址:http://code.google.com/intl/zh-CN/apis/maps/documentation/examples/index.html查看其示例,想看怎么实现,只要查看相应页面的源代码就可以了。
经过简单的一些复制,粘贴操作,马上就可以在你的网页上增加地图了,呵呵,是不是很简单呢!拥有自己的地图后我们马上实现通过IP定位google地图。实现这个功能之前,我们得先准备些IP数据,假如你没有这些数据怎么办?没关系,我们可以享受免费大餐,国外著名的maxmind公司提供免费的IP地址库和相应的JAVA实现接口程序,大家可以通过链接http://www.maxmind.com/app/java进行下载,其免费数据准确率大概是70-80%,如果你想要更准确的数据,可以购买其收费数据,可以准确到90%以上,此外,我们还可以下载到国内著名的IP纯真数据库,准确率比maxmind的数据高多了,而且还是不断更新的,不过只限于国内的IP而言。附件中的是20091215的纯真数据库。
上面的都是一些准备的工作,现在是万事具备,只欠编码了,不过编码倒也是小事,按部就班就行了。
第一步,获取来访用户的IP
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
第二步,根据IP,结合IP数据库获取相应的地址信息(纯真数据库)或者是经纬度信息,数据库调用都有相应的JAVA 调用API的,直接拿来用就行了。
第三步,根据获取到的经纬度或者地址信息定位地图,其实google map api只会根据经纬度进行定位,地址也是先转换成坐标信息,再进行定位的,代码片段如下:
function setMapCenter(){
map.setCenter(gll,14);//14是代表比例尺的级别
var marker = new GMarker(gll);
map.addOverlay(marker);
var tip = ipLoc+"\n"+chunZhenCountry+"\n"+chunZhenArea;
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(tip);
});
marker.openInfoWindowHtml(tip);
}
至此,通过IP实现google地图定位的功能就实现了,具体的效果,大家可以看一下
DEMO
截图如下:
纯真数据库的数据:
maxmind数据库的数据:
分享到:
相关推荐
asp.net屏蔽来访者IP的示例代码.rar
nginx负载均衡后如何记录来访者IP访客IP浏览者的IP
ip.asp 获取来访IP,并调用纯真数据库获取来访者的IP和地理位置 get.asp 1-10行是一个简单的调用 11行开始,连接数据库,获取访问的页面地址和参数,写入数据库 ip.mdb 数据写入此数据库 QQWry.Dat 纯真的IP数据库 ...
来访者省市问候系统
通过HttpModule限制来访IP:IP限制策略是很多情况需要使用的,基于HttpModule的实现思路,可以很容易的修改、添加或去除IP策略。更多资源:http://www.SmartKernel.com
1.根据来访IP判断是否在指定国家(IP段)范围内 2.简易js获取浏览器语言,来跳转到不同语种的页面
心理咨询来访者登记表_初诊接待.doc
心理咨询个案表来访者登记表.doc
1:通过WWW.IP138.COM来获得本机的外网IP地址 2:针对网上的其它实例增加实时更新IP地址功能,防止断网重连后IP地址显示不正确 3:增加一条命令,用来解决MSXML2.XMLHTTP和Microsoft.XMLHTTP老是读旧缓存导致IP地址...
程序作用:当我们制作留言簿,论坛,或者网友参加评论的时候,我们都希望记录网友ip的同时,也想直接知道他来自哪里,我们现在通过数据库进行查询,将ip所在的地理位置获取,并可保存在数据库中。非常实用的一个小...
可以显示显示的来访IP,地区,一个简单的曲线表,一个概述,以及来访域名,和搜索引擎关键词等
来访者信息收集表.doc
(JAVA)获取来访者IP、来访者浏览器版本、来访者系统版本、来访者mac IP、局域网所有链接IP地址、主机名什么的
全球最新IP地址库
为了方便校内师生的出行,利用百度地图 API 接口,针对学校的特殊环境和在校使用用户的特点,设计、 开发了适用于校园的定位导航系统。合理、有效利用百度地图 API 的功能,实现了校内地图展示、实时定位、地图搜索 ...
2、记录最后任意个来访者详细信息,包括IP、操作系统、日期、时间、浏览器 版本、来访页面、来访者国家地址。 3、可识别和统计不同版本的浏览器。 4、可识别统计常见操作系统。 5、可统计操作系统的不同版本。 6、...
PHP签名图片生成(来访IP、浏览器类型等)