如何把IP转换成经纬度金沙8331网址

在web应用软件开辟进度中,必要将回来的中纬度调换到中文地址,一番煎熬后得以贯彻,计算如下

每每有这种须求,具备客商的IP地址,想要在地图上显示顾客的访谈量。那时就须求采纳经纬度…应该为日常的地图插件都是根据经纬度的。
这便是说难题来了,怎么着把IP转变到经纬度?

规律深入分析:

百度API

最国产的法子,就是应用百度API了,百度提供了三种服务:

百度地图API提供了三个JS库,我们只需求用那些接口就能够兑现转移职能,这里我写叁个精练的demo,与君共勉

普通的IP服务:

https://api.map.baidu.com/location/ip?ak=请输入您的AK&coor=bd09ll

返回值:

{  
    address: "CN|吉林|长春|None|CERNET|1|None",  
    content: 
    {  
        address: "吉林省长春市",  
        address_detail: 
        {  
            city: "长春市",  
            city_code: 53,  
            district: "",  
            province: "吉林省",  
            street: "",  
            street_number: ""  
        },  
        point: 
        {       
            x: "125.31364243",      
            y: "43.89833761"  
        }  
    },  
    status: 0  
}
  body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";font-size:14px;} #allmap {width:100%;height:100%;}   逆地址解析 

function map_click{ var map = new BMap.Map; var point = new BMap.Point; map.centerAndZoom; var geoc = new BMap.Geocoder(); geoc.getLocation{ var addComp = rs.addressComponents; alert(addComp.province + “, ” + addComp.city + “, ” + addComp.district + “, ” + addComp.street + “, ” + addComp.streetNumber); }); }map_click;//参数解析 //@parameter1 lng 传入的经度 //@parameter2 lat 传入的纬度

金沙8331网址,精准的劳动:

https://api.map.baidu.com/highacciploc/v1?qcip=220.181.38.113&qterm=pc&ak=请输入您的AK&coord=bd09ll

返回值:

{
    content: {
        location: {
            lat: 40.047726,#纬度
            lng: 116.313304 #经度  
        },
        locid: "8b1bf81d208bc2ce657fb6e6c270de66",#定位结果唯一ID
        radius: 30, #定位结果半径
        confidence: 1 #定位结果可信度
    },
    result: {
        error: 161,#定位结果状态码
        loc_time: "2016-08-23 15:14:12"#定位时间
    }
}

这么些API亦不是随意问的,首先就须要注册;每种日子段的访谈量还应该有限…由此不符合做多少深入剖析利用。因为数量解析往往是多量的多少同期去进行经纬度的改换。

在JS文件中写入上海教室中的代码,调用函数就可以通过传播的中纬度获取到汉语地址,以圣路易斯为例,展开HTML页面

Logstash实行转移

Logstash本人提供了IP地址调换来经纬度的效果与利益:

input{
    file{
        path => "D:access.json"
        start_position => "beginning"
    }   
}
filter{
    json{
        source => "message"
    }
    date{
        match => ["time","yyyy-MM-dd HH:mm:ss"]
        timezone => "Asia/Shanghai"
    }
    geoip {
                source => "ip"
                target => "geoip"
    }
}
output{
    stdout{
            codec => rubydebug
    }
}

与上述同类就能够通过JS完成轻易的经纬度地址调换职能。

MaxMind提供的GeoIp服务

以此商铺提供了GeoIp的转移服务,当然倘若想要准确的合作也是收取薪资的。

这里有三个心得的网址:

上述所述是作者给大家介绍的JavaScript完成经纬度转变到地址成效,希望对我们具备利于,假设大家有别的疑问请给本身留言,我会及时回复大家的。在那也极度谢谢大家对台本之家网站的扶植!

东挪西撮山寨方案

本条山寨的方案灵感来源Logstash,Logstash自个儿提供了IP转变经纬度的效果。原理便是它本身有三个IP数据库,能够透过它施行查询。其实那一个数据库时老版的MaxMind提供的数据文件,凑合用啊!新的急需花钱呀!

废话非常的少说,在Java中想要使用这一个数据文件供给下载相应的Jar包和dat文件:

  • GeoIP jar包:geoip-api-1.3.1.jar
  • Geo city
    dat文件:GeoLiteCity-2013-01-18.dat

把dat文件放在自个儿的本土目录,然后项目中程导弹入geoip.jar就可以:

import com.maxmind.geoip.Location;
import com.maxmind.geoip.LookupService;
import java.io.IOException;

public class TestMain {
    public static void main(String[] args) {
        try {
            LookupService cl = new LookupService("D:/lib/geoip/GeoLiteCity-2013-01-18.dat", LookupService.GEOIP_MEMORY_CACHE);
            Location l2 = cl.getLocation("144.0.9.29");
            System.out.println(
                    "countryCode: " + l2.countryCode +"n"+
                    "countryName: " + l2.countryName +"n"+
                    "region: " + l2.region +"n"+
                    "city: " + l2.city +"n"+
                    "latitude: " + l2.latitude +"n"+
                    "longitude: " + l2.longitude);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

出口内容:

countryCode: CN
countryName: China
region: 25
city: Jinan
latitude: 36.668304
longitude: 116.99719

提起底晒二个图,快乐一下

金沙8331网址 1

参考

1 国外Geoip服务 MaxMind:
2 国内吉优ip服务 百度开放API:

发表评论

电子邮件地址不会被公开。 必填项已用*标注