PhoneGap中文网

 找回密码
 立即注册

phonegap利用百度地图实现定位

查看数: 26554 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-7-8 21:49

正文摘要:

我们都知道无论用原生开发的程序,还是用phoengap调用原生接口开发的程序,实现定位的时候总是不理想,下面给大家分享一个利用百度地图定位的方法 phonegap利用百度地图定位 1.http://developer.baidu.com/map/jsd ...

回复

admin 发表于 2014-10-16 19:02:26
wyz191 发表于 2014-7-22 08:33:31
本帖最后由 wyz191 于 2014-7-22 08:36 编辑
  1. <script type="text/javascript">
  2. document.addEventListener('deviceready',onDeviceReady,false);
  3. function onDeviceReady(){
  4.     getLocation();
  5. }
  6. function getLocation()
  7. {
  8.     try{
  9.         if(navigator.geolocation){
  10.             navigator.geolocation.getCurrentPosition(showMap, handleError, {enableHighAccuracy:true, maximumAge: 3000, timeout: 5000});
  11.         }else{
  12.             alert("您的浏览器不支持使用HTML 5来获取地理位置服务");
  13.         }
  14.     }catch(err){
  15.         alert(err);
  16.     }
  17. }

  18. function showMap(value){//地图初始化

  19.     try{
  20.         var longitude = value.coords.longitude;
  21.         var latitude = value.coords.latitude;
  22.         
  23.         alert('GPS : '+longitude+" -- "+latitude);

  24.         var map = new BMap.Map("map");
  25.         var point = new BMap.Point(longitude, latitude);    // 创建点坐标
  26.         map.centerAndZoom(point, 15);
  27.         var labelgps = new BMap.Label("我是GPS标注哦",{offset:new BMap.Size(20,-10)});
  28.         var marker = new BMap.Marker(new BMap.Point(longitude, latitude));  // 创建标注
  29.         marker.setLabel(labelgps); //添加GPS标注
  30.         map.addOverlay(marker);
  31.         map.addControl(new BMap.NavigationControl());
  32.         //坐标转换完之后的回调函数
  33.         translateCallback = function (point){
  34.             var marker = new BMap.Marker(point);
  35.             map.addOverlay(marker);
  36.             var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});
  37.             marker.setLabel(label); //添加百度label
  38.             map.setCenter(point);
  39.             alert(point.lng + "," + point.lat);
  40.             var myGeo = new BMap.Geocoder();
  41.             // 根据坐标得到地址描述
  42.             myGeo.getLocation(point, function(result){
  43.                               if (result){
  44.                               var province = result.addressComponents.province ;
  45.                               var city = result.addressComponents.city;
  46.                               var district = result.addressComponents.district ;
  47.                               var street = result.addressComponents.street ;
  48.                               var streetNumber = result.addressComponents.streetNumber ;
  49.                               alert(province + ' - ' +city + ' - ' +district+ ' - ' +street + ' - ' + streetNumber);
  50.                               }
  51.                               });
  52.         }

  53.         setTimeout(function(){
  54.                    BMap.Convertor.translate(point,0,translateCallback);     //真实经纬度转成百度坐标
  55.                    }, 2000);
  56.     }catch(err){
  57.         alert(err);
  58.     }
  59. }
  60. function handleError(value)
  61. {
  62.     alert('handleError:'+value);
  63.     switch(value.code){
  64.         case 1:
  65.         console.log("位置服务被拒绝");
  66.         break;
  67.         case 2:
  68.         console.log("暂时获取不到位置信息");
  69.         break;
  70.         case 3:
  71.         console.log("获取信息超时");
  72.         break;
  73.         case 4:
  74.         alert("未知错误");
  75.         console.log("未知错误");
  76.         break;
  77.     }
  78. }
  79. </script>
复制代码


wyz191 发表于 2014-7-22 08:30:20
嗯,获取经纬度后需要再转换一下才可以
十年站长 发表于 2014-7-21 10:31:27
不错不错
admin 发表于 2014-7-20 11:07:17
wyz191 发表于 2014-7-9 15:32
通过这种方式获取的经纬度信息,偏差太大了

还可以以吧,原生也有偏差,感觉自己的设备好的话可以用原生
wyz191 发表于 2014-7-9 15:32:05
通过这种方式获取的经纬度信息,偏差太大了
关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-5-6 07:15 , Processed in 0.043982 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表