php怎么实现手机定位功能?
php实现手机定位功能的实例
最近在做通过定位手机用户,进行消息推送,经过分析最终做法如下
mobile.php文件
当用户当手机访问该页面时,通过实现页面表单隐藏封装自动提交获取手机浏览器经纬度并post给服务器
<html><meta charset="utf8"><head><form name="form1" action="http://test.nwee.cc/ken/baidulocated.php" method="post"><input type="text" name="lat" id="lat" style="display:none"><input type="text" name="lng" id="lng" style="display:none"></form><script type="text/javascript"> var position_option = { enablehighaccuracy: true, maximumage: infinity, timeout: 100000 }; var lat; var lng; if(navigator.geolocation){ navigator.geolocation.getcurrentposition(getpositionsuccess, getpositionerror, position_option); }else{ alert('geolocation is not supported by this browser.'); } function getpositionsuccess(position) { lat = position.coords.latitude; lng = position.coords.longitude; //alert('您所在的位置: 纬度' + lat + ',经度' + lng);fillform();//填充表单document.form1.submit();//post数据到服务器 } function getpositionerror(error) { switch (error.code) { case error.timeout: alert('the request to get user location timed out.');break; case error.permission_denied: alert('user denied the request for geolocation.');break; case error.position_unavailable: alert('location information is unavailable.');break; default: alert('an unknown error occurred.'); } } function fillform(){ document.getelementbyid('lat').value = lat; document.getelementbyid('lng').value = lng; }</script></head></html>
located.php文件
通过百度定位api进行解析定位
<?phpheader("content-type:text/html; charset=utf8");$url="http://api.map.baidu.com/geocoder/v2/?location=".$_post["lat"].",".$_post["lng"]."&ak=*****************************&coordtype=bd09ll&output=json";$json = file_get_contents($url);$arr = json_decode($json, true);var_dump($arr);?>
更多相关知识,请访问!