本文共 2337 字,大约阅读时间需要 7 分钟。
利用百度api技术获取客户端IP地址经纬度及所在城市
.$currentIp;echo ''; $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'},//按层级关系提取经度数据 "y"=>$json->{'content'}->{'point'}->{'y'},//按层级关系提取纬度数据
"address"=>$json->{'content'}->{'address'} //按层级关系提取address数据 ); print_r($currentLocation); ====================
$currentLocation --------> 传给前段 js获取我的位置
====================
//高德地图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); });}
转载地址:http://krzxi.baihongyu.com/