+function() {
// 根据关键字搜索位置
function getAcMaps(map) {
var ac = new BMap.Autocomplete( //建立一个自动完成的对象
{"input" : "mapSearchInput"
,"location" : map
});
var myValue;
ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
setPlace();
});
// 搜索
$('#key-search-button').off().on('click', function() {
var searchKey = $.trim($('#mapSearchInput').val());
if (!searchKey.length) return false;
myValue = searchKey;
setPlace();
});
function setPlace(){
function myFun(){
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
var map = new BMap.Map("mapShow");
map.enableScrollWheelZoom();
map.addControl(new BMap.NavigationControl());
var point = new BMap.Point(pp.lng,pp.lat);
map.centerAndZoom(point, 15);
setMarkers(map, pp, myValue);// 创建标注
setRelatePosition(map, myValue);// 设置关联信息
savePoint(pp.lng, pp.lat);
addClickListener(map);
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(myValue);
setMapBounds(map);// 设置可视范围
}
}
// 初始化地图
function getMaps(lng, lat) {
var map = new BMap.Map("mapShow");
map.enableScrollWheelZoom();
map.addControl(new BMap.NavigationControl());
var point = new BMap.Point(lng,lat);
map.centerAndZoom(point, 15);
var myGeo = new BMap.Geocoder();
var position;
function geocodeSearch(pt){
myGeo.getLocation(pt, function(rs){
var addComp = rs.addressComponents;
// 街道、区、市逐层向上找
if (addComp.street.length) {
position = addComp.street;
} else if (addComp.district.length) {
position = addComp.district;
} else {
position = addComp.city;
}
setMarkers(map, point, position);// 创建标注
setRelatePosition(map, position);// 设置关联信息
getAcMaps(map);// 搜索
});
}
geocodeSearch(point); // 根据经纬度获取位置信息
addClickListener(map);
setMapBounds(map);// 设置可视范围
}
// 创建标注
function setMarkers(map, point, position) {
map.clearOverlays();
var markerls = new BMap.Marker(point);
//新建标注
var infoWindow = new BMap.InfoWindow("当前位置:" + position + "
(提示:任意点击地图,选择您的位置)");
map.openInfoWindow(infoWindow, point);
//默认时,显示窗口信息
markerls.addEventListener("click", function() {
map.openInfoWindow(infoWindow, point);
});
//点击标注点时显示窗口信息
markerls.enableDragging(true);
//启用地图鼠标拖拽
map.addOverlay(markerls);
//添加标注点在地图上
}
// 设置左侧相关地区
function setRelatePosition(map, position) {
var options = {
onSearchComplete: function(results){
// 判断状态是否正确
if (local.getStatus() == BMAP_STATUS_SUCCESS){
var sHtml = '';
for (var i = 0; i < results.getCurrentNumPois(); i ++){
var resultsAdr = '';
if (i <= 12) {
var ppArr = results.getPoi(i).point;
if (results.getPoi(i).province) {
resultsAdr += results.getPoi(i).province;
} else if (results.getPoi(i).city) {
resultsAdr += results.getPoi(i).city;
} else {
resultsAdr += results.getPoi(i).title;
}
sHtml += '