赞
踩
关于地图开发,一直想用iOS App 收集设备的地理位置,然后绘制成路线;
于是。。。。就开始着手了!但是采集的GPS老是不是非常精确,明明采集的参数是最精确的,为什么会有偏差啊?纳尼??后来查了资料,原来是需要地理位置坐标转换!
https://github.com/bytesking/YJLocationConverter;
坐标不准确,是因为百度地图用的是自己专用的坐标系;
需要把GPS世界坐标转化成火星坐标,用火星坐标转化成百度坐标;
上门连接是坐标转换工具;pod倒入非常方便;
php后台方面也遇到了相关问题:
- //上传我的位置信息
- function uploadMyLocation(){
- $dataLocationString=input('locations');
- $dataLocationJSON=json_decode($dataLocationString);
- }
//PS:困扰一上午的节点 插数据库就是插不进去,是因为jsondecode转化过来的对象里面是 std Obj的对象 不是数组
- 打印输出结果:
- /*
-
- array(1) { [0]=> array(3) { ["longitude"]=> float(162.6226345) ["latitude"]=> float(31.26238) ["datestamp"]=> int(8888) } }
- array(1) { [0]=> object(stdClass)#77 (3) { ["datestamp"]=> float(1626225641.93) ["latitude"]=> float(31.26238) ["longitude"]=> float(121.61608) } }
-
- */
-
- $resultJsonArray = array(); for ($i=0; $i <count($dataLocationJSON); $i++) {
- $array = (array)$dataLocationJSON[$i]; $resultJsonArray[]=$array; }
- #debug $data =
- [['longitude'=>162.6226345,'latitude'=>31.26238,'datestamp'=>8888] ];
- var_dump($resultJsonArray);
- $resultCode=Db::table('myLocationTable')->insertAll($resultJsonArray);
- return $this->APIJsonRes($resultCode,'success',['1'=>$data,'2'=>$resultJsonArray]);
- }
#######################下面是前端和后端配合的代码##################
- {volist name="locationArray" id="locationItem"}
- new BMapGL.Point({$locationItem.longitude},{$locationItem.latitude})
- {/volist}
总结:
1.先开发iOS端数据的收集,以及后台收集,把GPS转成百度地图的坐标;
2.开发服务端,数据上传保存数据库;查询locations的数据库;
3. 利用百度地图的javaScrip SDK前端负责页面的显示;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。