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根据经纬度获取地理位置的主要内容,如果未能解决你的问题,请参考以下文章