var mapAdree=""; var data_index=''; var pointArray=[]; 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); }); $("#myMap").bind("contextmenu", function () { //alert("点击了右键"); $(".map_bg").fadeIn(); $("#mapSj").hide(); //return false; }); //市区选择控件 $('.map_click').click(function(obj) { mapAdree=$(this).attr("index") data_index=$(this).attr('data_index'); earth(); }); //数据为空加载地图 function mapLoad(){ var city = '安阳市'; // 创建地址解析器实例 var address = '河南省安阳'+mapAdree; var myGeo = new BMap.Geocoder(); myGeo.getPoint(address, function(point) { if(point) { //定位到区 ,级别显示12 map.centerAndZoom(point, 13); $(".store_Lng").val(point.lng); $(".store_Lat").val(point.lat); map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放 //删除选点 map.clearOverlays(); } else { // alert("您选择地址没有解析到结果!"); } }, city); } // throungh() function throungh() { $.ajax({ type: "get", url: huayi.config.callcenter_url + "/Info/GetHotspotMap", async: false, dataType: 'json', data: { token: $.cookie("token"), start:$('#time1').val() && $('#time1').val().split(' ~ ')[0], //=开始时间 end:$('#time1').val() && $('#time1').val().split(' ~ ')[1], //=结束时间 // sourcearea:$('#sourceAreas').val() sourcearea:data_index }, success: function(result) { if(result.state.toLowerCase() == "success") { json_data = result.data; if(json_data.length==0){ mapLoad(); }else{ for(var i = 0; i < json_data.length; i++) { var marker = new BMap.Marker(new BMap.Point(json_data[i][0], json_data[i][1])); // 创建点 map.addOverlay(marker); //增加点 pointArray[i] = new BMap.Point(json_data[i][0], json_data[i][1]); var content = json_data[i][2]; addClickHandler(content, marker); //让所有点在视野范围内 map.setViewport(pointArray); } } } } }) } //初始化方法 function loadData() { } //#region 百度地图相关代码 /*************************百度地图 **************************/ function loadDefulatMap(callback) { var longiTude=$(".store_Lng").val(); var latitude=$(".store_Lat").val(); console.log(longiTude) 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()); if($(".store_Lng").val()!=115.659773){ createMarker(point); } map.setMapStyle({style:'googlelite'}); //map.addControl(new BMap.MapTypeControl()); //不同类型的百度地图 map.setCurrentCity("安阳"); // 仅当设置城市信息时,MapTypeControl的切换功能才能可用 //地图加载完成后加载数据 callback(); } // var pointArray=[]; //市区下拉框选择事件 function earth() { $(".map_bg").hide(); $("#mapSj").fadeIn(); var address = '河南省安阳市' + mapAdree; //alert(address) //var address = '河南省安阳市睢阳区' if(address != "") { var city = '安阳市'; // 创建地址解析器实例 // var myGeo = new BMap.Geocoder(); myGeo.getPoint(address, function(point) { if(point) { //定位到区 ,级别显示12 map.centerAndZoom(point, 13); //删除选点 map.clearOverlays(); throungh(); // for(var i = 0; i < json_data.length; i++) { // var marker = new BMap.Marker(new BMap.Point(json_data[i][0], json_data[i][1])); // 创建点 // map.addOverlay(marker); //增加点 // pointArray[i] = new BMap.Point(json_data[i][0], json_data[i][1]); // var content = json_data[i][2]; // addClickHandler(content, marker); // } } 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 addClickHandler(content, marker) { marker.addEventListener("click", function(e) { openInfo(content, e) }); } function openInfo(content, e) { var p = e.target; var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat); // var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象 var infoWindow = new BMap.InfoWindow(content); // 创建信息窗口对象 map.openInfoWindow(infoWindow, point); //开启信息窗口 } 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(13); } //解析地址 var rsaddress = rs.address; console.log(rs,rsaddress); console.log(rs.addressComponents.district) // if (rs.addressComponents.district=="汤阴县") { // $('#sourcearea').val("2"); // }else if (rs.addressComponents.district=="龙安区"){ // $('#sourcearea').val("3"); // }else if (rs.addressComponents.district=="滑县"){ // $('#sourcearea').val("4"); // }else if (rs.addressComponents.district=="北关区"){ // $('#sourcearea').val("5"); // }else if (rs.addressComponents.district=="林州市"){ // $('#sourcearea').val("6"); // }else if (rs.addressComponents.district=="殷都区"){ // $('#sourcearea').val("7"); // }else if (rs.addressComponents.district=="高新区"){ // $('#sourcearea').val("8"); // }else if (rs.addressComponents.district=="安阳县"){ // $('#sourcearea').val("9"); // }else if (rs.addressComponents.district=="内黄县"){ // $('#sourcearea').val("10"); // }else if (rs.addressComponents.district=="文峰区"){ // $('#sourcearea').val("11"); // } // $('#sourcearea').find("option:selected").text(rs.addressComponents.district); // //$('#sourcearea').find("option:selected").val(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); }) }) 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); console.log($(".store_Lat").val(rs.point.lat)) }) }); /******** 图层初始化 ********/ }); } //#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(); loadDefulatMap(loadData); //初始化地图以及加载初始化数据 // 创建控件 var myZoomCtrl = new BigZoomControl(); //// 查询控件类到地图当中 map.addControl(myZoomCtrl); //查询控件的点击事件 // $(".searchMap").click(function () { // setPlace($("#baiduAddress").val()); // }); Autocomplete(); //构建自动 bindEvent(); function bindEvent() { //查询百度地图 map.addEventListener("click", clickCoordinate); //地图点击事件 } /****************百度地图初始化完成****************/ //#endregion }