您的位置:首页 > 其它

百度地图点击地点显示经纬度并且转换为百度地址及添加控件

2017-08-09 17:15 447 查看

一、百度地图初始化及添加基本控件

1.引入地图包

地图包网址的ak属性是你在百度地图开放平台上申请的密钥

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=/*你的密钥*/"></script>


2.初始化地图

var map = new BMap.Map("allmap");            // 创建Map实例
map.centerAndZoom("天津",14);             // 初始化地图,设置城市和地图级别。


3.添加控件

//地图事件设置函数:
function setMapEvent(){
map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
map.enableScrollWheelZoom();//启用地图滚轮放大缩小
map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
map.enableKeyboard();//启用键盘上下左右键移动地图
}
//地图控件添加函数:
function addMapControl(){
//向地图中添加缩放控件
var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//向地图中添加缩略图控件
var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});
map.addControl(ctrl_ove);
//向地图中添加比例尺控件
var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
map.addControl(ctrl_sca);
}


二、单击地点后经纬度转换为地址

//监听单击事件
map.addEventListener("click",function(e){
map.clearOverlays();
// alert(e.point.lng + "," + e.point.lat);
point = new BMap.Point(e.point.lng, e.point.lat);
var geoc = new BMap.Geocoder();
geoc.getLocation(point,function(rs){
var addComp = rs.addressComponents;
// alert(addComp.province + ", " + addComp.city + "," + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
console.log(addComp);
});
var marker = new BMap.Marker(point);
map.addOverlay(marker);
document.getElementById("allmap").value = e.point.lng+ "," + e.point.lat;
});


三、完整代码如下

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 95%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
<!--引入地图包,地图包网址的ak属性是你在百度地图开放平台上申请的秘钥-->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=/*你的密钥*/"></script>
<!--引入jquery-->
<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<title>地址解析</title>
</head>
<body>
<!--我们要在这里创建地图实例,这个div容器的id属性会在后面用到-->
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom("天津",14); // 初始化地图,设置城市和地图级别。
setMapEvent();
addMapControl();
//地图事件设置函数: function setMapEvent(){ map.enableDragging();//启用地图拖拽事件,默认启用(可不写) map.enableScrollWheelZoom();//启用地图滚轮放大缩小 map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写) map.enableKeyboard();//启用键盘上下左右键移动地图 } //地图控件添加函数: function addMapControl(){ //向地图中添加缩放控件 var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE}); map.addControl(ctrl_nav); //向地图中添加缩略图控件 var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1}); map.addControl(ctrl_ove); //向地图中添加比例尺控件 var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT}); map.addControl(ctrl_sca); }
//监听单击事件 map.addEventListener("click",function(e){ map.clearOverlays(); // alert(e.point.lng + "," + e.point.lat); point = new BMap.Point(e.point.lng, e.point.lat); var geoc = new BMap.Geocoder(); geoc.getLocation(point,function(rs){ var addComp = rs.addressComponents; // alert(addComp.province + ", " + addComp.city + "," + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber); console.log(addComp); }); var marker = new BMap.Marker(point); map.addOverlay(marker); document.getElementById("allmap").value = e.point.lng+ "," + e.point.lat; });

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐