window.onload = function() {
//键盘事件
$("#sourceaddress").bind('keypress', function(event) {
if($('#sourcearea').val() == "") {
layer.msg("请选择区", {
time: 1500,
icon: 5
});
return;
}
if($("#sourceaddress").val() == "") {
layer.msg("请填写详细地址", {
time: 1500,
icon: 5
});
return;
}
var address = '河南省安阳市' + $('#sourcearea').find("option:selected").text() + $("#sourceaddress").val();
setPlace(address);
});
//市区选择控件
$('#sourcearea').change(function(obj) {
if($('#sourcearea').val() == "") {
alert("请选择省市区");
return;
}
$("#sourceaddress").val("")
//alert("1")
//$(".store_Lng").val("");
//$(".store_Lat").val("");
earth();
});
//初始化方法
function loadData() {
}
//#region 百度地图相关代码
/*************************百度地图 **************************/
function loadDefulatMap(callback) {
var longiTude=$(".store_Lng").val();
var latitude=$(".store_Lat").val();
var point = new BMap.Point($(".store_Lng").val(), $(".store_Lat").val()); // 创建点坐标
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
map.addControl(new BMap.NavigationControl());
map.addControl(new BMap.ScaleControl());
map.addControl(new BMap.OverviewMapControl());
//map.addControl(new BMap.MapTypeControl()); //不同类型的百度地图
map.setCurrentCity("安阳"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用
//地图加载完成后加载数据
callback();
}
//市区下拉框选择事件
//earth();
function earth() {
var address = '河南省安阳市' + $('#sourcearea').find("option:selected").text();;
//var address = '河南省安阳市睢阳区'
if(address != "") {
var city = '安阳市';
// 创建地址解析器实例
// var myGeo = new BMap.Geocoder();
myGeo.getPoint(address, function(point) {
if(point) {
//定位到区 ,级别显示12
map.centerAndZoom(point, 12);
//删除选点
map.clearOverlays();
} else {
// alert("您选择地址没有解析到结果!");
}
}, city);
}
}
function Autocomplete() {
//建立一个自动完成的对象
var ac = new BMap.Autocomplete({
"input": "baiduAddress",
"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
index = " + e.fromitem.index + "
value = " + value;
value = "";
if(e.toitem.index > -1) {
_value = e.toitem.value;
value = _value.province + _value.city + _value.district + _value.street + _value.business;
}
str += "
ToItem
index = " + e.toitem.index + "
value = " + value;
$(".area_tip").innerHTML = str;
});
ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
var myValue = _value.street + _value.business;
$(".area_tip").innerHTML = "onconfirm
index = " + e.item.index + "
myValue = " + myValue;
setPlace(myValue);
})
}
//地图选点点击事件
function clickCoordinate(e) {
var point = e.point;
createMarker(point);
console.log(e.point);
}
function setPlace(value) {
function myFun() {
if(local.getResults().getPoi(0)) {
var point = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
createMarker(point);
} else {
alert("未搜索到结果,请重新输入");
}
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(value);
}
var baiduParam = {
oldPoint: null //记录旧值,用于地图拖拽失败后回到原来位置
,
Exceed_Error: "定位地址失败,您搜索或定位超出县级范围,请重新选择定位",
SelectRegion_Error: "定位地址失败,您搜索或定位超出县级范围,请先选择省市区",
Location_Div: "
已将坐标定位为
{address}
地址:{title}
",
Location_Sure_Div: "
已将坐标定位为
{address}
地址:{title}
"
}
function createMarker(point, isLoad) {
//反向解析地址
myGeo.getLocation(point, function(rs) {
map.clearOverlays(); //清除之前所有的标志
//红点开始
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
marker.enableDragging(); //可拖拽 自定义拖拽
//拖拽前事件
marker.addEventListener("dragstart", function(e) {
baiduParam.oldPoint = e.point;
})
//拖拽完成事件
marker.addEventListener("dragend", function(e) {
createMarker(e.point);
})
//红点完成
baiduParam.oldPoint = null;
/******** 图层初始化 ********/
/**图层样式文字处理开始**/
var html = baiduParam.Location_Div;
// if(isLoad == true) {
// map.centerAndZoom(point, map.getZoom()); //重置地图位置
// html = baiduParam.Location_Sure_Div;
// }
//如果缩放等级小于当前的 ,则为18
if(map.getZoom() < 18) {
map.setZoom(18);
}
//解析地址
var rsaddress = rs.address;
console.log(rs);
if (rs.addressComponents.district=="市区") {
$('#sourcearea').val("4964");
} else if (rs.addressComponents.district=="文峰区") {
$('#sourcearea').val("4965");
} else if (rs.addressComponents.district=="北关区") {
$('#sourcearea').val("4966");
} else if (rs.addressComponents.district=="殷都区") {
$('#sourcearea').val("4967");
} else if (rs.addressComponents.district=="龙安区") {
$('#sourcearea').val("4968");
} else if (rs.addressComponents.district=="安阳县") {
$('#sourcearea').val("4969");
} else if (rs.addressComponents.district=="汤阴县") {
$('#sourcearea').val("4970");
} else if (rs.addressComponents.district=="内黄县") {
$('#sourcearea').val("4971");
} else if (rs.addressComponents.district=="滑县") {
$('#sourcearea').val("4972");
} else if (rs.addressComponents.district=="林州市") {
$('#sourcearea').val("4973");
} else if (rs.addressComponents.district=="林州市") {
$('#sourcearea').val("4974");
} else {
layer.msg("超出安阳市范围!");
}
getTownshipVillage($("#township"), $("#sourcearea").val())
// $('#sourcearea').find("option:selected").text(rs.addressComponents.district);
if (rs.surroundingPois.length>0) {
if (rs.addressComponents.street!="") {
$('#sourceaddress').val(rs.addressComponents.street+'-'+rs.surroundingPois[0].title);
}else{
$('#sourceaddress').val(rs.surroundingPois[0].title);
}
} else {
$('#sourceaddress').val(rs.addressComponents.street);
}
$(".store_Lng").val(rs.point.lng);
$(".store_Lat").val(rs.point.lat);
var rstitle = rs.surroundingPois[0] != null ? rs.surroundingPois[0].title : "";
html = html.replace("{address}", rsaddress).replace("{title}", rstitle);
/**图层样式文字处理结束**/
var infoWindow = new BMap.InfoWindow(html, {
offset: {
width: 0,
height: -25
}
});
// 创建信息窗口对象
map.openInfoWindow(infoWindow, point); //开启信息窗口
//确定事件绑定
infoWindow.addEventListener("open", function(a) {
$("#saveLngLat").unbind("click");
$("#saveLngLat").click(function() {
infoWindow.setContent("
已将坐标定位为
" + rs.address + "
地址:" + (rs.surroundingPois[0] != null ? rs.surroundingPois[0].title : "") + "
");
$(".store_Lng").val(rs.point.lng);
$(".store_Lat").val(rs.point.lat);
$(".mapPos").hide();
$(".mapBJ").hide();
})
})
infoWindow.redraw(function() {
$("#saveLngLat").unbind("click");
$("#saveLngLat").click(function() {
infoWindow.setContent("
已将坐标定位为
" + rs.address + "
地址:" + (rs.surroundingPois[0] != null ? rs.surroundingPois[0].title : "") + "
");
$(".store_Lng").val(rs.point.lng);
$(".store_Lat").val(rs.point.lat);
$(".mapPos").hide();
$(".mapBJ").hide();
})
});
/******** 图层初始化 ********/
});
}
//#region /****查询控件类****/
function BigZoomControl() {
// 设置默认停靠位置和偏移量
this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
this.defaultOffset = new BMap.Size(150, 20);
}
// 通过JavaScript的prototype属性继承于BMap.Control
BigZoomControl.prototype = new BMap.Control();
// 自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回
// 在本方法中创建个div元素作为控件的容器,并将其添加到地图容器中
BigZoomControl.prototype.initialize = function(map) {
// 创建一个DOM元素
var div = document.createElement("div");
// 设置样式
div.style.cursor = "pointer";
div.style.margin = "0 auto";
div.style.backgroundColor = "white";
div.innerHTML = "";
// 添加DOM元素到地图中
map.getContainer().appendChild(div);
// 将DOM元素返回
return div;
}
//#endregion
//#endregion
//#region 百度地图初始化
/****************百度地图初始化开始****************/
//去除默认点击
var map = new BMap.Map("myMap", {
enableMapClick: false
});
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
// 创建地址解析器实例
var myGeo = new BMap.Geocoder();
$(".source_area img").click(function(){
//$(".mapPos").toggle();
//$(".mapBJ").show();
//loadDefulatMap(loadData)
});
loadDefulatMap(loadData); //初始化地图以及加载初始化数据
// 创建控件
var myZoomCtrl = new BigZoomControl();
//// 查询控件类到地图当中
map.addControl(myZoomCtrl);
//查询控件的点击事件
// $(".searchMap").click(function () {
// setPlace($("#baiduAddress").val());
// });
Autocomplete(); //构建自动
bindEvent();
function bindEvent() {
//查询百度地图
map.addEventListener("click", clickCoordinate); //地图点击事件
}
/****************百度地图初始化完成****************/
//#endregion
}