phonegap利用百度地图实现定位
我们都知道无论用原生开发的程序,还是用phoengap调用原生接口开发的程序,实现定位的时候总是不理想,下面给大家分享一个利用百度地图定位的方法phonegap利用百度地图定位
1.http://developer.baidu.com/map/jsdemo.htm打开这个网址
2.找到服务示例-定位服务 -浏览器订单如下图
也可以获取代码一下他的示例代码:
最后核心代码如下
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
if(this.getStatus() == BMAP_STATUS_SUCCESS){
// alert('您的位置:'+r.point.lng+','+r.point.lat);
var longitude=r.point.lng;//经度
var latitude=r.point.lat; //纬度
}
else {//失败的回调函数
//错误回调
//alert('failed'+this.getStatus());
}
},{enableHighAccuracy: true});
通过这种方式获取的经纬度信息,偏差太大了 wyz191 发表于 2014-7-9 15:32
通过这种方式获取的经纬度信息,偏差太大了
还可以以吧,原生也有偏差,感觉自己的设备好的话可以用原生 不错不错 嗯,获取经纬度后需要再转换一下才可以 本帖最后由 wyz191 于 2014-7-22 08:36 编辑
<script type="text/javascript">
document.addEventListener('deviceready',onDeviceReady,false);
function onDeviceReady(){
getLocation();
}
function getLocation()
{
try{
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showMap, handleError, {enableHighAccuracy:true, maximumAge: 3000, timeout: 5000});
}else{
alert("您的浏览器不支持使用HTML 5来获取地理位置服务");
}
}catch(err){
alert(err);
}
}
function showMap(value){//地图初始化
try{
var longitude = value.coords.longitude;
var latitude = value.coords.latitude;
alert('GPS : '+longitude+" -- "+latitude);
var map = new BMap.Map("map");
var point = new BMap.Point(longitude, latitude); // 创建点坐标
map.centerAndZoom(point, 15);
var labelgps = new BMap.Label("我是GPS标注哦",{offset:new BMap.Size(20,-10)});
var marker = new BMap.Marker(new BMap.Point(longitude, latitude));// 创建标注
marker.setLabel(labelgps); //添加GPS标注
map.addOverlay(marker);
map.addControl(new BMap.NavigationControl());
//坐标转换完之后的回调函数
translateCallback = function (point){
var marker = new BMap.Marker(point);
map.addOverlay(marker);
var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});
marker.setLabel(label); //添加百度label
map.setCenter(point);
alert(point.lng + "," + point.lat);
var myGeo = new BMap.Geocoder();
// 根据坐标得到地址描述
myGeo.getLocation(point, function(result){
if (result){
var province = result.addressComponents.province ;
var city = result.addressComponents.city;
var district = result.addressComponents.district ;
var street = result.addressComponents.street ;
var streetNumber = result.addressComponents.streetNumber ;
alert(province + ' - ' +city + ' - ' +district+ ' - ' +street + ' - ' + streetNumber);
}
});
}
setTimeout(function(){
BMap.Convertor.translate(point,0,translateCallback); //真实经纬度转成百度坐标
}, 2000);
}catch(err){
alert(err);
}
}
function handleError(value)
{
alert('handleError:'+value);
switch(value.code){
case 1:
console.log("位置服务被拒绝");
break;
case 2:
console.log("暂时获取不到位置信息");
break;
case 3:
console.log("获取信息超时");
break;
case 4:
alert("未知错误");
console.log("未知错误");
break;
}
}
</script>
wyz191 发表于 2014-7-22 08:33
{:4_86:}
页:
[1]