1.html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>搜索定位</title>
<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css">
#map {
width: 800px;
height: 800px;
}
</style>
<script src="jquery.js"></script>
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=你申请的ak码"></script>
</head>
<body>
<div id="map">
</div>
<input type="text" id="address">
<button id="btn">搜索</button>
</body>
</html>
2.js部分
代码都有注释,就不多说了
// 百度地图API功能
var map = new BMap.Map("map");
map.centerAndZoom("杭州", 11);
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件
// 标尺控件
map.addControl(top_left_control);
map.addControl(top_left_navigation);
//定位
function setPlace(value) {
var local, point, marker = null;
local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: fn
});
local.search(value);
function fn() {
//如果搜索的有结果
if(local.getResults() != undefined) {
map.clearOverlays(); //清除地图上所有覆盖物
if(local.getResults().getPoi(0)) {
point = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(point, 18);
marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
marker.enableDragging(); // 可拖拽
alert("当前定位经度:"+point.lng+"纬度:"+point.lat);
} else {
alert("未匹配到地点!可拖动地图上的红色图标到精确位置");
}
} else {
alert("未找到搜索结果")
}
}
}
// 按钮事件
$("#btn").click(function(){
setPlace($("#address").val());
});
3.效果