Google地图API——IP映射为地址

    最近使用Google地图和Google提供的API,经过半天的捉摸,终于弄好了。

         程序主要实现的功能是将给定的IP地址使用第三方API查找大体位置(例如<省,城市>),然后根据位置用Google提供的接口找到经纬度,在Google地图上显示出来,不多说,直接上代码,新手,写得有点乱,见谅!

 

<head profile="">  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />  
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />  
    <title>MyLoadTester</title>  
      
      
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false®ion=zh-CN"></script>  
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>  
  
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>  
    <script type="text/javascript" src="js/service_cloud.js"></script>  
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>  
        <script type="text/javascript"><!--//--><![CDATA[//><!-- 
    sfHover = function()  
    { 
        var sfEls = document.getElementById("nav").getElementsByTagName("LI"); 
        for (var i=0; i<sfEls.length; i++)  
        { 
            sfEls[i].οnmοuseοver=function()  
            { 
                this.className+=" sfhover"; 
            } 
            sfEls[i].οnmοuseοut=function()  
            { 
                this.className=this.className.replace(new RegExp(" sfhover\\b"), ""); 
            } 
        } 
    } 
    if (window.attachEvent) window.attachEvent("onload", sfHover); 
     
    $( 
        function(){ 
            $("#navsubmenu>a").hover( 
                function(){ 
                    var childMenu = $(this).next('ul'); 
                    childMenu.show(); 
                } 
            ) 
        } 
    ) 
    //--><!]]></script>  


 

<script type="text/javascript">  
     
       var num=<%=appliances.size()%>;  
       var ipList=[];  
       var lgt=[],lat=[];  
     
      <%for(int j=0; j<appliances.size(); j++){%>  
        ipList.push('<%=appliances.get(j)%>');  
    <%}%>  
      
    function initialize()   
    {  
         
       var latlng = new google.maps.LatLng(39.92, 116.46);  
           var myOptions = {  
          zoom:2,  
          center: latlng,  
          mapTypeId: google.maps.MapTypeId.ROADMAP  
        };  
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  
        
       
        for(var i=0; i<num ; i++)  
        {  
       
            userip(ipList[i],i);  
              
                }  
                 
 function userip(ip,i){       
    $.getScript("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip="+ip,  
        function(){  
             var prov=remote_ip_info["province"];  
             var city=remote_ip_info["city"];  
             var thisAddess=prov+city  
             jsShow(thisAddess,ip,i)  
        }  
    );       
}  
  
  
  function jsShow(address,ip,i){  
    var geocoder = new google.maps.Geocoder();  
          
       var lg=0,la=0;  
     if(geocoder){  
         geocoder.geocode({'address': address }, function(results, status) {  
  
             if (status == google.maps.GeocoderStatus.OK) {  
                 var GeoCode = ((results[0].geometry.location).toString().replace(/[()]/g, '')).split(",",2);  
                 la = parseFloat(GeoCode[0]);  
                 lg = parseFloat(GeoCode[1]);  
               lat[i]=la;lgt[i]=lg;  
            var myLatlng = new google.maps.LatLng(la,lg);  
            var marker = new google.maps.Marker({  
                position: myLatlng,  
                title: 'Tester Node:'+ ip  
                });  
              
            attachSecretMessage(marker, i);   
            markersArray.push(marker);  
          
          
          
        if (markersArray) {  
            for (i in markersArray) {  
                markersArray[i].setMap(map);  
            }  
                }                      
              
                }  
            })  
        }  
            function attachSecretMessage(marker, number)  
        {   
        
            var infowindow = new google.maps.InfoWindow(   
              { content: ipList[number],   
                size: new google.maps.Size(50,50)   
              });  
            google.maps.event.addListener(marker, 'click', function() {  
            infowindow.open(map,marker);  
              
            var nodelist_div=document.getElementById("selected_nodes");  
            nodelist_div.innerHTML+=ipList[number]+'<br><br>';  
            selectedIP.push(ipList[number]);  
          });   
        }  
}  
              
         }  


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值