$(document).ready(function(){
$("#dwtr").hide();
//百度地图初始化
initMap();
//加载大类下拉列表
doBigTypeList();
//加载到地图上
loadAllCompDetail("");
var lxid=$("#lxid").val();
if(lxid!=""&&lxid!=null){
$("#dwtr").show();
getComponentInfo(lxid);
$("#title").html('<font size="4" color="#0072bc"><b>修改页面</b></font>');
}else{
$("#colortr").hide();
$("#title").html('<font size="4" color="#0072bc"><b>增加页面</b></font>');
}
//加载热区
loadGridHotArea();
//按钮样式
showImsg("dwbut,savebut,resetbut");
});
var bmap="";
//绘图标识
var drawflag=0;
var pointarr=[];
var pointstr="";
var polygon="";
var linepointarr=[];
var linepointstr="";
var polyline="";
var marker="";
var clng="";//中心点经度
var clat="";//中心点纬度
var a="";//经度最大值
var b="";//纬度最大值
var c="";//经度最小值
var d="";//纬度最小值
//数组
var compmarkerarr1=[];
var compmarkerarr2=[];
var compmarkerarr3=[];
var comppolyline=[];
var comppolygon=[];
//缩放级别数组
var zoom2darr=[14,15,16,17,18,19];
var zoom3darr=[8,9,10,11,12,13];
var vertflag=0;
//区域数组
var gridareaarr=[];
var gridlabel=[];
function getComponentInfo(lxid){
$.ajax({
async:false,
type: "POST",
dataType: "json",
url: ctxPath+'/componentDetailAction.do?dispatch=getComponentInfoByid',
data:"lxid="+lxid,
success: function(data) {
var assemblytype=data.assemblytype;
$("#assemblyname").val(data.assemblyname);
$("#bigtype").val(data.bigtype);
doSmallTypeList();
$("#smalltype").val(data.smalltype);
$("#assemblytype").val(assemblytype);
$("#tcolor").val(data.tcolor);
$("#tcolor").css("background-color",data.tcolor);
if(data.tcolor==""||data.tcolor==null){
$("#tcolor").val('#39b778');
$("#tcolor").css("background-color",'#39b778');
}
if(assemblytype=="1"){
$("#colortr").hide();
$("#pointlng1").val(data.pointlng);
$("#pointlat1").val(data.pointlat);
}else if(assemblytype=="2"){
$("#pointlng2").val(data.pointlng);
$("#pointlat2").val(data.pointlat);
$("#tpoints2").val(data.tpoints);
}else if(assemblytype=="3"){
$("#pointlng3").val(data.pointlng);
$("#pointlat3").val(data.pointlat);
$("#tpoints3").val(data.tpoints);
}
}
});
}
//加载大类下拉列表
function doBigTypeList(){
$.ajax({
async:false,
type: "POST",
dataType: "json",
url: ctxPath+'/componentAction.do?dispatch=doCompBTSelectList',
success: function(data) {
var obj=document.getElementById('bigtype');
obj.options.add(new Option("--请选择--",""));
for(var i=0;i<data.length;i++){
obj.options.add(new Option(data[i].supername,data[i].superid));
}
}
});
}
//根据大类id加载小类下拉列表
function doSmallTypeList(){
$("#smalltype").html("");
var superid=$("#bigtype").val();
if(superid!=""&&superid!=null){
$.ajax({
async:false,
type: "POST",
dataType: "json",
url: ctxPath+'/componentAction.do?dispatch=doCompSTSelectList',
data:"superid="+superid,
success: function(data) {
var obj=document.getElementById('smalltype');
obj.options.add(new Option("--请选择--",""));
for(var i=0;i<data.length;i++){
obj.options.add(new Option(data[i].smallname,data[i].smallid));
}
}
});
}else{
var obj=document.getElementById('smalltype');
obj.options.add(new Option("--请选择--",""));
}
}
//点击类型下拉框
function onAssemblyTypeChange(){
var assemblytype=$("#assemblytype").val();
if(assemblytype=="2"||assemblytype=="3"){
$("#colortr").show();
}else{
$("#colortr").hide();
}
}
//添加监听
function addMapListener(){
var assemblytype=$("#assemblytype").val();
if(assemblytype==""){
alert("请选择类型!");
}
drawflag="1";
bmap.addEventListener("click", function(e){
addLabelArea(e);
});
}
//删除监听
function removeMapListener(){
drawflag="0";
bmap.removeEventListener("click", function(e){
addLabelArea(e);
});
}
function addLabelArea(e){
var curmaptype=bmap.getMapType();
//坐标转换类
var ctool=new CoorTools(bmap);
var assemblytype=$("#assemblytype").val();
if(assemblytype=="1"){//点
if(drawflag=="1"){
if(marker!=""){
bmap.removeOverlay(marker);
}
//清空面标注信息
if(polygon!=""){
bmap.removeOverlay(polygon);
}
pointarr=[];
$("#tpoints3").val("");
//清空线标注信息
if(polyline!=""){
bmap.removeOverlay(polyline);
}
linepointarr=[];
$("#tpoints2").val("");
clng=e.point.lng;
clat=e.point.lat;
marker = new BMap.Marker(e.point); // 创建标注
bmap.addOverlay(marker); // 将标注添加到地图中
if(curmaptype._name=="MyMap"){
var point3=new BMap.Point(clng,clat);
var point2=ctool.coor2Baidu(point3);
clng=point2.lng;
clat=point2.lat;
}
$("#pointlng1").val(clng);
$("#pointlat1").val(clat);
}
}else if(assemblytype=="2"){//线
if(drawflag=="1"){
if(polyline!=""){
bmap.removeOverlay(polyline);
}
if(marker!=""){
bmap.removeOverlay(marker);
}
//清空面标注信息
if(polygon!=""){
bmap.removeOverlay(polygon);
}
pointarr=[];
$("#tpoints3").val("");
var npoint=new BMap.Point(e.point.lng,e.point.lat);
clng=e.point.lng;
clat=e.point.lat;
linepointarr.push(npoint);
var tcolor=$("#tcolor").val();
polyline=new BMap.Polyline(linepointarr,{strokeColor:tcolor,strokeWeight:2,strokeOpacity:0.8});
bmap.addOverlay(polyline);
linepointstr=fromArrayToString(linepointarr);
if(curmaptype._name=="MyMap"){
var tempstr="";
var tpointstr=linepointstr.split(",")
for(var i=0;i<tpointstr.length;i+=2){
var tlng=tpointstr[i];
var tlat=tpointstr[i+1];
var point=new BMap.Point(tlng,tlat);
var npoint=ctool.coor2Baidu(point);
tempstr+=npoint.lng+","+npoint.lat+",";
}
linepointstr=tempstr.substring(0,(tempstr.length-1));
var point3=new BMap.Point(clng,clat);
var point2=ctool.coor2Baidu(point3);
clng=point2.lng;
clat=point2.lat;
}
$("#tpoints2").val(linepointstr);
$("#pointlng2").val(clng);
$("#pointlat2").val(clat);
}
}else if(assemblytype=="3"){//面
if(drawflag=="1"){
if(polygon!=""){
bmap.removeOverlay(polygon);
}
if(marker!=""){
bmap.removeOverlay(marker);
}
//清空线标注信息
if(polyline!=""){
bmap.removeOverlay(polyline);
}
linepointarr=[];
$("#tpoints2").val("");
var npoint=new BMap.Point(e.point.lng,e.point.lat);
//获取经度和纬度的最大最小值
if(pointarr.length==0){
a=e.point.lng;
b=e.point.lat;
c=e.point.lng;
d=e.point.lat;
}else{
if(a<e.point.lng){
a=e.point.lng;
}
if(b<e.point.lat){
b=e.point.lat;
}
if(c>e.point.lng){
c=e.point.lng;
}
if(d>e.point.lat){
d=e.point.lat;
}
}
clng=(a+c)/2;
clat=(b+d)/2;
pointarr.push(npoint);
var tcolor=$("#tcolor").val();
polygon=new BMap.Polygon(pointarr,{fillOpacity:0.2,fillColor:tcolor,strokeColor:tcolor,strokeWeight:2,strokeOpacity:0.8});
bmap.addOverlay(polygon);
pointstr=fromArrayToString(pointarr);
if(curmaptype._name=="MyMap"){
var tempstr="";
var tpointstr=pointstr.split(",")
for(var i=0;i<tpointstr.length;i+=2){
var tlng=tpointstr[i];
var tlat=tpointstr[i+1];
var point=new BMap.Point(tlng,tlat);
var npoint=ctool.coor2Baidu(point);
tempstr+=npoint.lng+","+npoint.lat+",";
}
pointstr=tempstr.substring(0,(tempstr.length-1));
var point3=new BMap.Point(clng,clat);
var point2=ctool.coor2Baidu(point3);
clng=point2.lng;
clat=point2.lat;
}
$("#tpoints3").val(pointstr);
$("#pointlng3").val(clng);
$("#pointlat3").val(clat);
}
}
}
//重置
function clearform(){
if(marker!=""){
bmap.removeOverlay(marker);
}
//清空面标注信息
if(polygon!=""){
bmap.removeOverlay(polygon);
}
//清空线标注信息
if(polyline!=""){
bmap.removeOverlay(polyline);
}
$("#assemblyname").val("");
$("#pointlng1").val("");
$("#pointlat1").val("");
$("#pointlng2").val("");
$("#pointlat2").val("");
$("#pointlng3").val("");
$("#pointlat3").val("");
$("#bigtype").val("");
$("#smalltype").val("");
$("#assemblytype").val("");
//清空点字符串
pointarr=[];
$("#tpoints3").val("");
linepointarr=[];
$("#tpoints2").val("");
}
//将点数组转化为字符串
function fromArrayToString(pointarr){
var pointstr="";
for(var i=0;i<pointarr.length;i++){
pointstr+=pointarr[i].lng+","+pointarr[i].lat+",";
}
pointstr=pointstr.substring(0,(pointstr.length-1));
return pointstr;
}
//将字符串转化为点数组
function fromStringToArray(pointstr){
var pointarr=[];
var tpoints=pointstr.split(",")
for(var i=0;i<tpoints.length;i+=2){
var tlng=tpoints[i];
var tlat=tpoints[i+1];
var tpoint=new BMap.Point(tlng,tlat);
pointarr.push(tpoint);
}
return pointarr;
}
//加载
function loadAllCompDetail(ctypeid){
var curjgid=$("#curjgid").val();
$.ajax({
async:false,
type: "POST",
dataType: "json",
url: ctxPath+'/componentDetailAction.do?dispatch=getComponentMapList',
data: "curjgid="+curjgid+"&ctypeid="+ctypeid,
success: function(data) {
for(var i=0;i<data.length;i++){
var obj=data[i];
addCoverObj(obj);
}
}
});
}
//添加覆盖物
function addCoverObj(obj){
var curmaptype=bmap.getMapType();
//坐标转换类
var ctool=new CoorTools(bmap);
var tpoints=obj.tpoints;
var tcolor=obj.assemblycolor;
var pointlng=obj.longitude;
var pointlat=obj.latitude;
var assemblyname=obj.assemblyname;
var assemblytype=obj.assemblytype;
var timg=obj.assemblyicon;
if(tcolor==""||tcolor==null){
tcolor='red';
}
var iconImg = new BMap.Icon(ctxPath+timg, new BMap.Size(20,50),{
imageOffset: new BMap.Size(0,0),
offset:new BMap.Size(0,0)
});
if(assemblytype=="1"){//点
var cpoint=new BMap.Point(pointlng,pointlat);
if(curmaptype._name=="MyMap"){
cpoint=ctool.coor2Baidu3D(cpoint);
}
var marker1 = new BMap.Marker(cpoint,{icon:iconImg,title:assemblyname,offset:new BMap.Size(0,-24)});
bmap.addOverlay(marker1);
compmarkerarr1.push(marker1);
}else if(assemblytype=="2"){//线
if(tpoints!=""&&tpoints!=null){
if(curmaptype._name=="MyMap"){
var tempstr="";
var tpointstr=tpoints.split(",")
for(var i=0;i<tpointstr.length;i+=2){
var tlng=tpointstr[i];
var tlat=tpointstr[i+1];
var point=new BMap.Point(tlng,tlat);
var npoint=ctool.coor2Baidu3D(point);
tempstr+=npoint.lng+","+npoint.lat+",";
}
tpoints=tempstr.substring(0,(tempstr.length-1));
}
var opointarr=fromStringToArray(tpoints);
var polyline1=new BMap.Polyline(opointarr,{strokeColor:tcolor,strokeWeight:2,strokeOpacity:0.8});
bmap.addOverlay(polyline1);
comppolyline.push(polyline1);
var cpoint=new BMap.Point(pointlng,pointlat);
if(curmaptype._name=="MyMap"){
cpoint=ctool.coor2Baidu3D(cpoint);
}
var marker1 = new BMap.Marker(cpoint,{icon:iconImg,title:assemblyname,offset:new BMap.Size(0,-24)});
bmap.addOverlay(marker1);
compmarkerarr2.push(marker1);
}
}else if(assemblytype=="3"){//面
if(tpoints!=""&&tpoints!=null){
if(curmaptype._name=="MyMap"){
var tempstr="";
var tpointstr=tpoints.split(",")
for(var i=0;i<tpointstr.length;i+=2){
var tlng=tpointstr[i];
var tlat=tpointstr[i+1];
var point=new BMap.Point(tlng,tlat);
var npoint=ctool.coor2Baidu3D(point);
tempstr+=npoint.lng+","+npoint.lat+",";
}
tpoints=tempstr.substring(0,(tempstr.length-1));
}
var opointarr=fromStringToArray(tpoints);
var polygon1=new BMap.Polygon(opointarr,{fillOpacity:0.2,fillColor:tcolor,strokeColor:tcolor,strokeWeight:2,strokeOpacity:0.8});
bmap.addOverlay(polygon1);
comppolygon.push(polygon1);
var cpoint=new BMap.Point(pointlng,pointlat);
if(curmaptype._name=="MyMap"){
cpoint=ctool.coor2Baidu3D(cpoint);
}
var marker1 = new BMap.Marker(cpoint,{icon:iconImg,title:assemblyname,offset:new BMap.Size(0,-24)});
bmap.addOverlay(marker1);
compmarkerarr3.push(marker1);
}
}
}
//保存
function doSaveComponentDetail(){
var pointlng="";
var pointlat="";
var tpoints="";
var tcolor=$("#tcolor").val();
var assemblyname=$("#assemblyname").val();
var bigtype=$("#bigtype").val();
var smalltype=$("#smalltype").val();
var assemblytype=$("#assemblytype").val();
var lxid=$("#lxid").val();
var curjgid=$("#curjgid").val();
if(assemblyname==""){
alert("名称不能为空!");
return false;
}
if(bigtype==""){
alert("请选择大类!");
return false;
}
if(smalltype==""){
alert("请选择小类!");
return false;
}
if(assemblytype==""){
alert("选择类型!");
return false;
}
if(assemblytype=="1"){
pointlng=$("#pointlng1").val();
pointlat=$("#pointlat1").val();
if(pointlng==""||pointlat==""){
alert("您还没有在地图上标注位置!");
return false;
}
}else if(assemblytype=="2"){
tpoints=$("#tpoints2").val();
if(tpoints==""){
alert("您还没有在地图上标注位置!");
return false;
}
pointlng=$("#pointlng2").val();
pointlat=$("#pointlat2").val();
}else if(assemblytype=="3"){
tpoints=$("#tpoints3").val();
if(tpoints==""){
alert("您还没有在地图上标注位置!");
return false;
}
pointlng=$("#pointlng3").val();
pointlat=$("#pointlat3").val();
}
$.ajax({
type: "POST",
dataType: "json",
url: ctxPath+'/componentDetailAction.do?dispatch=saveComponentDetail',
data: "pointlng="+pointlng+"&pointlat="+pointlat+"&tpoints="+tpoints+"&tcolor="+tcolor+"&assemblyname="+assemblyname
+"&bigtype="+bigtype+"&smalltype="+smalltype+"&assemblytype="+assemblytype+"&lxid="+lxid+"&curjgid="+curjgid,
success: function(msg) {
if(lxid==""){//增加
if(msg=="1"){
$("#assemblyname").val("");
$("#pointlng1").val("");
$("#pointlat1").val("");
$("#pointlng2").val("");
$("#pointlat2").val("");
$("#pointlng3").val("");
$("#pointlat3").val("");
$("#bigtype").val("");
$("#smalltype").val("");
$("#assemblytype").val("");
pointarr=[];
$("#tpoints3").val("");
linepointarr=[];
$("#tpoints2").val("");
alert("添加成功!");
if(assemblytype=="1"){
for(var i=0;i<compmarkerarr1.length;i++){
bmap.removeOverlay(compmarkerarr1[i]);
}
compmarkerarr1=[];
}else if(assemblytype=="2"){
for(var i=0;i<compmarkerarr2.length;i++){
bmap.removeOverlay(compmarkerarr2[i]);
}
compmarkerarr2=[];
for(var i=0;i<comppolyline.length;i++){
bmap.removeOverlay(comppolyline[i]);
}
comppolyline=[];
}else if(assemblytype=="3"){
for(var i=0;i<compmarkerarr3.length;i++){
bmap.removeOverlay(compmarkerarr3[i]);
}
compmarkerarr3=[];
for(var i=0;i<comppolygon.length;i++){
bmap.removeOverlay(comppolygon[i]);
}
comppolygon=[];
}
loadAllCompDetail(assemblytype);
removeMapListener();
}else{
alert("添加失败!");
}
}else{//修改
if(msg=="1"){
pointarr=[];
linepointarr=[];
if(assemblytype=="1"){
for(var i=0;i<compmarkerarr1.length;i++){
bmap.removeOverlay(compmarkerarr1[i]);
}
compmarkerarr1=[];
}else if(assemblytype=="2"){
for(var i=0;i<compmarkerarr2.length;i++){
bmap.removeOverlay(compmarkerarr2[i]);
}
compmarkerarr2=[];
for(var i=0;i<comppolyline.length;i++){
bmap.removeOverlay(comppolyline[i]);
}
comppolyline=[];
}else if(assemblytype=="3"){
for(var i=0;i<compmarkerarr3.length;i++){
bmap.removeOverlay(compmarkerarr3[i]);
}
compmarkerarr3=[];
for(var i=0;i<comppolygon.length;i++){
bmap.removeOverlay(comppolygon[i]);
}
comppolygon=[];
}
loadAllCompDetail(assemblytype);
alert("修改成功!");
removeMapListener();
}else{
alert("修改失败!");
}
}
}
});
}
var dwmarker="";
function doDingwei(){
var curmaptype=bmap.getMapType();
//坐标转换类
var ctool=new CoorTools(bmap);
if(dwmarker!=""){
bmap.removeOverlay(dwmarker);
dwmarker="";
}
var assemblytype=$("#assemblytype").val();
var pointlng="";
var pointlat="";
if(assemblytype=="1"){
pointlng=$("#pointlng1").val();
pointlat=$("#pointlat1").val();
}else if(assemblytype=="2"){
pointlng=$("#pointlng2").val();
pointlat=$("#pointlat2").val();
}else if(assemblytype=="3"){
pointlng=$("#pointlng3").val();
pointlat=$("#pointlat3").val();
}
var iconImg = new BMap.Icon(ctxPath+"/images/dw.gif", new BMap.Size(45,45),{
imageOffset: new BMap.Size(0,0),
offset:new BMap.Size(0,0)
});
var dwpoint=new BMap.Point(pointlng,pointlat);
if(curmaptype._name=="MyMap"){
dwpoint=ctool.coor2Baidu3D(dwpoint);
}
dwmarker= new BMap.Marker(dwpoint,{icon:iconImg,offset:new BMap.Size(0,0)});
bmap.addOverlay(dwmarker);
bmap.panTo(dwpoint);
setTimeout(function(){
if(dwmarker!=""){
bmap.removeOverlay(dwmarker);
dwmarker="";
}
},3000)
}
//加载热区
function loadGridHotArea(){
var curjgid=$("#curjgid").val();
$.ajax({
async:false,
type: "POST",
dataType: "json",
url: ctxPath+'/gridOrgAction.do?dispatch=getGridOrgById',
data: "lxid="+curjgid,
success: function(data) {
var obj=new Object();
obj.reseauarea=data.tpoints;
obj.tcolor=data.tcolor;
obj.pointlng=data.pointlng;
obj.pointlat=data.pointlat;
obj.reseauname=data.reseauname;
addGridCoverObj(obj);
}
});
}
//添加覆盖物
function addGridCoverObj(obj){
var curmaptype=bmap.getMapType();
//坐标转换类
var ctool=new CoorTools(bmap);
var tpoints=obj.reseauarea;
var tcolor=obj.tcolor;
var pointlng=obj.pointlng;
var pointlat=obj.pointlat;
var reseauname=obj.reseauname;
if(tcolor==""||tcolor==null){
tcolor='red';
}
if(tpoints!=""&&tpoints!=null){
if(curmaptype._name=="MyMap"){
var tempstr="";
var tpointstr=tpoints.split(",")
for(var i=0;i<tpointstr.length;i+=2){
var tlng=tpointstr[i];
var tlat=tpointstr[i+1];
var point=new BMap.Point(tlng,tlat);
var npoint=ctool.coor2Baidu3D(point);
tempstr+=npoint.lng+","+npoint.lat+",";
}
tpoints=tempstr.substring(0,(tempstr.length-1));
}
var opointarr=fromStringToArray(tpoints);
var polygon1=new BMap.Polygon(opointarr,{fillOpacity:0.2,fillColor:tcolor,strokeColor:tcolor,strokeWeight:2,strokeOpacity:0.8});
bmap.addOverlay(polygon1);
gridareaarr.push(polygon1);
var cpoint=new BMap.Point(pointlng,pointlat);
if(curmaptype._name=="MyMap"){
cpoint=ctool.coor2Baidu3D(cpoint);
}
var myLabel = new BMap.Label(reseauname, //为lable填写内容
{offset:new BMap.Size(-15,-15), //label的偏移量,为了让label的中心显示在点上
position:cpoint
});
bmap.addOverlay(myLabel);
gridlabel.push(myLabel);
}
}