您的位置:首页 > 其它

利用百度api技术获取客户端IP地址经纬度及所在城市位置

2015-10-08 16:45 776 查看
利用百度api技术获取客户端IP地址经纬度及所在城市
<?php
$currentIp=$_SERVER["REMOTE_ADDR"];
echo 'IP:'<span style="font-family:Verdana, sans-serif, 宋体;">.</span>$currentIp;echo '<br/>';
$content = file_get_contents("http://api.map.baidu.com/location/ip?ak=7IZ6fgGEGohCrRKUE9Rj4TSQ&ip={$getIp}&coor=bd09ll");
$json = json_decode($content);
$currentLocation = array(
"x"=>$json->{'content'}->{'point'}->{'x'},//按层级关系提取经度数据<span style="font-family:Verdana, sans-serif, 宋体;">
</span><pre name="code" class="php"> "y"=>$json->{'content'}->{'point'}->{'y'}<span style="font-family:Verdana, sans-serif, 宋体;">,</span>//按层级关系提取纬度数据 "address"=>$json->{'content'}->{'address'}
//按层级关系提取address数据
); print_r($currentLocation);


====================

$currentLocation<span style="font-family:Verdana, sans-serif, 宋体;"> --------> 传给前段 js获取我的位置</span>
====================

//高德地图
gaode_get_addr_by_latlng(lat+','+lon,function(a,b){
txt.set('value', b.formatted_address);
});
function gaode_get_addr_by_latlng(latlng, cbfunc) {
var arr = (''+latlng).split(',');
latlng = arr[1] + ',' + arr[0]; // gaode 是 lon 在前 lat 在后
var url = 'http://restapi.amap.com/v3/geocode/regeo?location='+encodeURIComponent(latlng)+'&radius=1000&extensions=all&key='+hc_gaode_key;
hc_xhr(hc_gc_proxy(url), false, function(data){ // json 数据
//alert(data.regeocode.formatted_address);
if( data && 'object' == typeof(data.regeocode) ) {
// 返回的数据中有 pois 周边名称? 也有 formated_address, 等
if( 'function' == typeof(cbfunc) ) {
var loc = [];
if( data.regeocode.addressComponent && data.regeocode.addressComponent.streetNumber && data.regeocode.addressComponent.streetNumber.location ) {
loc = (data.regeocode.addressComponent.streetNumber.location + '').split(',');
}
cbfunc.call(null, false,
{
location: { // TODO: 纠偏此数据
type: 'google',
lat: loc[1],
lng: loc[0]
},
formatted_address: data.regeocode.formatted_address, //‘详细地址描述’
business: data.regeocode.business, // '周围商圈'
addressComponent: {
city: data.regeocode.addressComponent.city, //’城市名称’,
district: data.regeocode.addressComponent.district, //‘区县名称’,
province: data.regeocode.addressComponent.province, //’省份名称’,
street: data.regeocode.addressComponent.township, //‘街道名称’,
streetNumber: data.regeocode.addressComponent.streetNumber.street // '门牌号码'
},
cityCode: data.regeocode.cityCode, // '城市代码'
pois: data.regeocode.pois // 周边
});
}
} else {
if( 'function' == typeof(cbfunc) )
cbfunc.call(null, 'data format error!');
}
}, function(err){
if( 'function' == typeof(cbfunc) )
cbfunc.call(null, err);
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: