phonegap3.4 + 百度地图获取地址信息

一、js方式实现

参考文章:

http://chy2z.blog.163.com/blog/static/316688462013111894315993/

http://www.oschina.net/code/snippet_945111_20394


首先创建一个应用,应用类别选择移动端

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ak值"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<title>GPS转百度</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">

// 百度地图API功能
//GPS坐标
var xx = 116.397428;
var yy = 39.90923;
var gpsPoint = new BMap.Point(xx,yy);

//地图初始化
/*var bm = new BMap.Map("allmap");
bm.centerAndZoom(gpsPoint, 15);
bm.addControl(new BMap.NavigationControl());

//添加谷歌marker和label
var markergps = new BMap.Marker(gpsPoint);
bm.addOverlay(markergps); //添加GPS标注
var labelgps = new BMap.Label("我是GPS标注哦",{offset:new BMap.Size(20,-10)});
markergps.setLabel(labelgps); //添加GPS标注
*/

//坐标转换完之后的回调函数
translateCallback = function (point){
    /*var marker = new BMap.Marker(point);
    bm.addOverlay(marker);
    var label = new BMap.Label("我是百度标注哦",{offset:new BMap.Size(20,-10)});
    marker.setLabel(label); //添加百度label
    bm.setCenter(point);
    alert(point.lng + "," + point.lat);*/
	var gc = new BMap.Geocoder();   
    gc.getLocation(point, function(rs){
		var addComp = rs.addressComponents;
		alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
	});
}

setTimeout(function(){
    BMap.Convertor.translate(gpsPoint,0,translateCallback);     //真实经纬度转成百度坐标
}, 2000);
</script> 

2、web服务方式实现

参考文章:

ip转换:http://developer.baidu.com/map/changeposition.htm

地址解析:http://developer.baidu.com/map/webservice-geocoding.htm


首先创建一个应用,应用类别选择服务端
参考:http://developer.baidu.com/map/webservice-geocoding.htm

坐标转百度坐标:http://api.map.baidu.com/geoconv/v1/?coords=116.3594337,39.9840182&from=1&to=5&ak=ak值
坐标转实际地址:http://api.map.baidu.com/geocoder/v2/?ak=<span style="font-family: Arial, Helvetica, sans-serif;">ak值</span><span style="font-family: Arial, Helvetica, sans-serif;">&location=39.9840182,116.3594337&output=json&pois=0</span>


注:每个应用类别对应的ak值不同,不同类型的服务,选择对应的ak值


3、phonegap+百度

首先导入两个js

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ak值"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>

获取详细地址信息js

var latitude,longitude;
navigator.geolocation.getCurrentPosition(function(position) {
	latitude = position.coords.latitude;
	longitude = position.coords.longitude;
	var gpsPoint = new BMap.Point(longitude,latitude);
	BMap.Convertor.translate(gpsPoint,0,function (point){
		var gc = new BMap.Geocoder();
		gc.getLocation(point, function(rs){
			var addComp = rs.addressComponents;
			alert("result::::::   " + addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
		});
	});
}, function(error) {
	alert('code: '    + error.code    + '\n' +
			'message: ' + error.message + '\n');
});

注:可以将上面的脚本标签内的src值下载到本地,制作一个js文件,由app引用脚本即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值