在input输入一个地址,地图自动定位到该位置,并返回该位置的经纬度
// 引入map.html
<div>
<iframe src="../map.html" id="iframeId" width="1000" height="500" style="float: left;" frameborder="0" scrolling="no"></iframe>
</div>
<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
<title>百度地图API</title>
<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=wda7MkIC2IMcSWXhausLCoGNFy4u4kVO"></script> -->
<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=xh4WinWpMZZQGrZSURUFYsm7GNI4BvIB"></script> -->
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=wz2ZdjD0Q6klVTzNsQSCCxVocGboZD3M"></script>
<!-- 如果需要拖拽鼠标进行操作,可引入以下js文件 -->
<script type="text/javascript" src="https://api.map.baidu.com/library/RectangleZoom/1.2/src/RectangleZoom_min.js"></script>
<style type="text/css">
body, html {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}
</style>
</head>
<body>
<div id="r-result" style="width:260px;float:left;margin-left: 15px;" >
<span style="color: red;margin-left: -5px;">*</span>详细地址
<input type="text" id="suggestId" size="20" value="" style="width:170px;margin-left: 10px;margin-bottom: 15px;height: 24px;" />
<span hidden="true">
<span style="color: red;margin-left: 25px;">*</span>经度
<input type="text" id="X_X" size="20" style="width:170px;margin-left:12px;height: 24px;margin-bottom: 15px;" />
<span style="color: red;margin-left: 25px;">*</span>纬度
<input type="text" id="Y_Y" size="20" style="width:170px;margin-left:12px;height: 24px;margin-bottom: 15px;" />
</span>
</div>
<div id="allmap" style="width: 600px;height: 500px;float:left"></div>
<div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div>
</body>
</html>
<script type="text/javascript">
// 百度地图API功能
function G(id) {
return document.getElementById(id);
}
var map = new BMap.Map("allmap");
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
var myDrag = new BMapLib.RectangleZoom(map, {
followText: "拖拽鼠标进行操作"
});
myDrag.open(); //开启拉框放大
// myDrag.close(); //关闭拉框放大
map.centerAndZoom("济宁市",19); // 初始化地图,设置城市和地图级别。
var ac = new BMap.Autocomplete( //建立一个自动完成的对象
{"input" : "suggestId"
,"location" : map
});
ac.addEventListener("onhighlight", function(e) { //鼠标放在下拉列表上的事件
var str = "";
var _value = e.fromitem.value;
var value = "";
if (e.fromitem.index > -1) {
value = _value.province + _value.city + _value.district + _value.street + _value.business;
}
str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
value = "";
if (e.toitem.index > -1) {
_value = e.toitem.value;
value = _value.province + _value.city + _value.district + _value.street + _value.business;
}
str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
G("searchResultPanel").innerHTML = str;
});
var myValue;
ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
setPlace();
});
function setPlace(){
map.clearOverlays(); //清除地图上所有覆盖物
function myFun(){
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
console.log('经度:'+pp.lng, '纬度:'+pp.lat);
document.getElementById("X_X").value=pp.lng
document.getElementById("Y_Y").value=pp.lat
map.centerAndZoom(pp, 18);
map.addOverlay(new BMap.Marker(pp)); //添加标注
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(myValue);
}
</script>
获取经纬度
var ADDRESS = $("#iframeId").contents().find("#suggestId").val();
var LONGITUDE = $("#iframeId").contents().find("#X_X").val();
var LATITUDE = $("#iframeId").contents().find("#Y_Y").val();