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

利用百度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);
 });
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值