php根据经纬度获取地理位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php根据经纬度获取地理位置相关的知识,希望对你有一定的参考价值。

这种功能,只能调用第三方的接口了,百度地图API就有这个接口addressComponents,逆地址解析,参考方法如下:

<GeocoderSearchResponse>

<status>OK</status>

<result>

<location>

<lat>38.990998</lat>

<lng>103.645966</lng>

</location>

<formatted_address>甘肃省武威市民勤县</formatted_address>

<business/>

<addressComponent>

<streetNumber/>

<street/>

<district>民勤县</district>

<city>武威市</city>

<province>甘肃省</province>

</addressComponent>

<cityCode>118</cityCode>

</result>

</GeocoderSearchResponse>

地理(Geography),是世界或某一地区的自然环境(山川、气候等)及社会要素的统称。“地理”一词最早见于中国《易经》。古代的地理学主要探索关于地球形状、大小有关的测量方法,或对已知的地区和国家进行描述。

地理学是研究地球表面的地理环境中各种自然现象和人文现象,以及它们之间相互关系的学科。地理是一门综合性的基础学科。

参考技术A //高德地图
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);
);
本回答被提问者和网友采纳
参考技术B 你这要借用百度地图的接口才行 参考技术C 貌似能根据IP获取地理位置!根据经纬度?php有此功能么?

php编程之如何输入地址自动转换为经纬度

对于一些地图或地理位置的显示,通常要用到经纬度来表示,也就是用户输入地址之后,系统能够根据用户输入的位置信息进行经纬度的转换,那么这在技术上该如何实现呢?下面就来为大家简单介绍一下重点部分的代码实现,不过仅限腾讯地图。
//输入地址获取经纬度(腾讯地图)
function getAddress($address) {
header("Content-type:text/html;charset=utf-8");
$ak = ‘YOUR-KEY‘;//你腾讯地图的k值
$address = $address;

$url = "http://apis.map.qq.com/ws/geocoder/v1/?address={$address}&key={$ak}";

$json = file_get_contents($url);
$data = json_decode($json,TRUE);
return $data[‘result‘][‘location‘];//获取地址的 经纬度
["lng"] => float(113.6401)//经度
["lat"] => float(34.72468)//纬度

}

/**

  • 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)
  • @param string $user_name 姓名
  • @return string 格式化后的姓名
    /function substr_cut($user_name){
    $strlen = mb_strlen($user_name, ‘utf-8‘);
    $firstStr = mb_substr($user_name, 0, 1, ‘utf-8‘);
    $lastStr = mb_substr($user_name, -1, 1, ‘utf-8‘);
    return $strlen == 2 ? $firstStr . str_repeat(‘
    ‘, mb_strlen($user_name, ‘utf-8‘) - 1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr;
    }

  那么关于php编程中如何输入地址自动转换为经纬度就为大家介绍到这里了,如果还存在有疑问的技术开发者可以在下方留言讨论。本文由专业的app开发燚轩科技整理发布,如需转载请注明原文作者及出处!

以上是关于php根据经纬度获取地理位置的主要内容,如果未能解决你的问题,请参考以下文章

根据纬度和经度获取网格中单元格的位置

php怎样获取当前位置的经纬度?

微信小程序正确的异步request请求,根据经纬度获取地理位置信息

如何实现根据照片获取地理位置及如何防御照片泄漏地理位置

php编程之如何输入地址自动转换为经纬度

Android根据已知的经纬度坐标获取当前位置