/**
* [ONEMAP.M.toolDraw]
* @return {[object]}
*/
define([
'html!templates/tools/toolDraw_new',
'modDir/service/addressSearch',
'css!styles/tools/toolDraw_new'
],
function (tplLayout, addressSearchF) {
var modValue = {
label: false,
// Create an empty GeoJSON collection
collection: {
"type": "FeatureCollection",
"features": []
},
globalGuid: '',
closeSave: false,
showhideAll: true,
drawModel: '',
tipText: '',
drawGroup: [],
sdPicker: 'polyline', //手动选择样式
drawLayerGuids: [], //图形guid存储
textGuids: [], //文字guid存储
styleGuid: '',
textPosition: {}, //文字位置
ajaxData: {}, //保存&导出内容
lastGuid: '',
hdGuid: [],
clostat: true, //弹窗关闭状态
tdPoints: {}, //三维点集合
tdshowData: {
polyArr: [],
lineArr: [],
pointArr: []
},
tdian: {},
tdline: {},
tdpoly: {},
tdcircle: {},
drawType:null
};
ONEMAP.D.transArr = {};
ONEMAP.showhideAll = true;
var status = {
initialized: false //是否初始化
};
var map3 = map2DViewer.map;
function init(type) {
if (!status.initialized) {
setLayout();
bindEvent();
//取消订阅
unSubscribe();
//添加订阅
subscribe();
status.initialized = true;
}
modValue.drawType = type;
ONEMAP.C.publisher.publish({
modName: 'toolDraw'
}, 'toolsd:active');
$(".draw-polyline-latlngs-picker").css("top", "180px");
$(".draw-polyline-latlngs-picker h4").dragmove($(".draw-polyline-latlngs-picker"))
$(".draw-polyline-latlngs-picker h4 span").bind("click", function () {
$(".draw-polyline-latlngs-picker").hide();
$(".tsAct li.sd").removeClass('active')
})
}
function isIE() { //ie?
if (!!window.ActiveXObject || "ActiveXObject" in window) {
return true;
} else {
return false;
}
}
function setLayout() {
$(tplLayout).appendTo($("#wrapper"));
if (!ONEMAP.D.isLoad) {
$("#xingmutishi").addClass('active');
$("#xingmutishi .close").bind("click", function () {
$("#xingmutishi").removeClass('active')
})
// ONEMAP.C.publisher.publish({ type: 'warning', message: '请先登录以便保存' }, 'noteBar::add');
}
if (map23DData.display.map2D) {
$(".tsAct li.import .importFile").show();
} else {
$(".tsAct li.import .importFile").hide();
}
$("#topBar .total-content .tools-tool23Dchange").bind("click", function () {
if (map23DData.display.map2D) {
change23D('2d')
} else {
change23D('3d')
}
})
if (!isIE()) {
// $(".tsTX").dragmove($(".toolBF"));
// $(".toolBF").css("top","330px");
} else {
// $(".toolBF").css("top","370px");
}
}
//删除当前图形、存储、弹窗
ONEMAP.C.delPoly = function (id) {
if (map3._layers[id] == undefined) {
$("#" + id).remove();
} else {
if (map3._layers[id].saveStatu) {
var ajaxData = {
_id: map3._layers[id].saveId
};
$.ajax({
type: "GET",
dataType: 'json',
url: onemapUrlConfig.userCenterUrl + '/draw/del',
data: ajaxData,
success: function (data) {
ONEMAP.V.loading.loaded();
if (data.code == 4) {
ONEMAP.T.noPermission('favorite');
}
if (data.code == 3) {
ONEMAP.T.logout('favorite');
}
if (data.success) {
ONEMAP.C.publisher.publish({
type: 'success',
message: '已删除'
}, 'noteBar::add');
if (ONEMAP.M.hasOwnProperty('userDraw')) {
ONEMAP.M.userDraw.getFavData();
}
} else {
ONEMAP.C.publisher.publish({
type: 'error',
message: '删除失败'
}, 'noteBar::add');
}
},
error: function (errorData) {
ONEMAP.V.loading.loaded();
}
});
}
map3._layers[id].remove();
var index = modValue.drawLayerGuids.indexOf(id);
if (index > -1) {
modValue.drawLayerGuids.splice(index, 1);
}
}
// 文字清除
$(".leaflet-marker-icon." + id).remove();
// 三维点清除
var aaa = $("#" + id + " h4 .bt").attr("tdm");
delPoint(aaa);
delete modValue.tdPoints[aaa];
deltdCircle(modValue.tdcircle[id]);
delete modValue.tdcircle[id];
deltdline(modValue.tdline[id]);
delete modValue.tdline[id];
deltdpoly(modValue.tdpoly[id]);
delete modValue.tdpoly[id];
// 节点清除
$("#" + id).remove();
}
function setStyle(id) {
var setObj = {};
setObj = map3._layers[id];
var guid = modValue.styleGuid;
$("." + guid + " .yanse span").off("click").on("click", function () {
yanse = $(this).attr("class");
switch (yanse) {
case "black":
yanse = "#000";
break;
case "blue":
yanse = "#00f";
break;
case "gray":
yanse = "#828282";
break;
case "green":
yanse = "#007C00";
break;
case "orange":
yanse = "#FF9E02";
break;
case "red":
yanse = "#FE1D23";
break;
case "white":
yanse = "#fff";
break;
case "yellow":
yanse = "#FFFD00";
break;
}
var polyguid = $(this).parents().filter(".pubPop").attr("id");
map3._layers[polyguid].setStyle({
"color": yanse
})
setStyle(polyguid)
if (modValue.drawModel == "polygon" || modValue.drawModel == "rectangle") {
var coods = [];
for (var j = 0; j < setObj._latlngs[0].length; j++) {
coods.push([setObj._latlngs[0][j].lng, setObj._latlngs[0][j].lat]);
}
coods.push([setObj._latlngs[0][0].lng, setObj._latlngs[0][0].lat]);
deltdpoly(modValue.tdpoly[id]);
delete modValue.tdpoly[id];
var sid = add3DPoly(coods, yanse);
modValue.tdpoly[id] = sid;
}
if (modValue.drawModel == "polyline") {
var coods = [];
for (var j = 0; j < setObj._latlngs.length; j++) {
coods.push([setObj._latlngs[j].lng, setObj._latlngs[j].lat]);
}
deltdline(modValue.tdline[id]);
delete modValue.tdline[id];
var sid = add3DLine(coods, yanse);
modValue.tdline[id] = sid;
}
if (modValue.drawModel == "circle") {
var coods = [setObj._latlng.lng, setObj._latlng.lat];
deltdCircle(modValue.tdcircle[id]);
delete modValue.tdcircle[id];
var sid = add3DCircle(coods, setObj._mRadius, yanse);
modValue.tdcircle[id] = sid;
}
// map3.removeLayer(polyguid)
// ONEMAP.M.userDraw.delFav(polyguid)
// saveSingle(polyguid);
})
}
ONEMAP.C.setPop = function (guid) {
////console.log(guid)
if (typeof (guid) == "string" || typeof (guid) == "number") {
modValue.styleGuid = guid;
} else {
modValue.styleGuid = guid.id;
}
if ($("." + modValue.styleGuid).hasClass("active")) {
$("." + modValue.styleGuid).removeClass("active")
} else {
$("." + modValue.styleGuid).addClass("active")
}
}
function deltdline(guid) {
map3DViewer.polyline({
action: 'remove',
guid: guid
})
}
//删除线
function delPolyline(guid) {
map3DViewer.polyline({
action: 'remove',
guid: guid
})
}
//添加3D线段
function add3DLine(coordinates, color) {
var GDguid = map3DViewer.polyline({
action: 'add',
geojson: {
"properties": {
altitudeMode: 0,
color: color || '#0e74d1',
weight: 2,
opacity: 1
},
"geometry": {
"coordinates": coordinates
}
}
})
return GDguid;
}
//修改3D线段
function updateLine(id, coordinates,color) {
// var cl = '#0e74d1';
// if(color){cl = color}
var GDguid = map3DViewer.polyline({
action: 'update',
geojson: {
"properties": {
altitudeMode: 0,
color: color||'#0e74d1',
weight: 2,
opacity: 1
},
"geometry": {
"coordinates": coordinates
}
},
guid: id
})
return GDguid;
}
//添加点
function addPoint(title, coordinates, tdurl, color) {
var ibg = onemapUrlConfig.siteUrl + '/scripts/vendor/leaflet/draw_new/images/marker-icon.png';
if (tdurl) {
ibg = tdurl
}
var guid = map3DViewer.marker({
action: 'add',
// groupId:modValue.markersGroupGuid,
geojson: {
"type": "Feature",
"properties": {
title: title,
iconUrl: ibg,
icon3DUrl: ibg,
// iconSize: pointStyle.iconSize || '20',
iconSize: [18, 26],
// iconAnchor: pointStyle.iconAnchor || [0,0],
iconAnchor: [0, 0],
popupAnchor: [0, -30],
altitlude: 1,
altitudeMode: 0,
popupContent: 'afsaf',
titleColor: color || '#f00000',
titleFontSize: 20
},
"geometry": {
"type": "Point",
"coordinates": coordinates
}
}
})
return guid;
}
//更新点
function updatePoint(title, guid, pointBg, color) {
var bg = onemapUrlConfig.siteUrl + '/scripts/vendor/leaflet/draw_new/images/marker-icon.png';
if (pointBg) {
bg = pointBg
};
map3DViewer.marker({
action: 'update',
geojson: {
"properties": {
title: title,
iconUrl: bg,
icon3DUrl: bg,
titleColor: color || '#f00',
// titleFontSize: styleInfo.fontSize
}
},
guid: guid
})
}
function updatePointS(title, guid) {
map3DViewer.marker({
action: 'update',
geojson: {
"properties": {
title: title
}
},
guid: guid
})
}
//删除点
function delPoint(guid) {
map3DViewer.marker({
action: 'remove',
guid: guid
})
}
// 获取文字点击位置
function bindGloCli() {
document.onclick = function (ev) {
var oEvent = ev || event;
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
modValue.textPosition.left = oEvent.clientX + 'px';
modValue.textPosition.top = oEvent.clientY + 'px';
}
}
// 提示文字
function moveTip(model) {
$("#drawTipText").show();
switch (model) {
case "point":
modValue.tipText = '左键点击绘制点标注';
bindGloCli();
break;
case "label":
modValue.tipText = '左键点击绘制文本标注';
bindGloCli();
break;
case "polyline":
modValue.tipText = '左键点击绘制路线';
bindGloCli();
break;
case "polygon":
modValue.tipText = '左键点击绘制面标注';
bindGloCli();
break;
case "rectangle":
modValue.tipText = '左键点击绘制矩形';
bindGloCli();
break;
case "circle":
modValue.tipText = '左键点击绘制圆';
bindGloCli();
break;
}
$("#drawTipText").text(modValue.tipText)
document.onmousemove = function (ev) {
var oEvent = ev || event;
var oDiv = document.getElementById('drawTipText');
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
oDiv.style.left = oEvent.clientX + scrollLeft + 'px';
oDiv.style.top = oEvent.clientY + scrollTop + 'px';
}
}
function bindEvent() {
map3.pm.addControls({
drawMarker: true,
drawPolygon: false,
editPolygon: false,
drawPolyline: true,
deleteLayer: false,
editMode: true,
toggleEdit: true
});
map3.on('pm:drawstart', function (e) {
var layer = e.workingLayer;
layer.on('pm:vertexadded', function (e) {
switch (modValue.drawModel) {
case "polyline":
modValue.tipText = '左键双击结束绘制';
break;
case "polygon":
modValue.tipText = '左键点击绘制面标注;点击第一个点完成绘画';
break;
case "rectangle":
modValue.tipText = '左键点击完成绘制';
break;
case "circle":
modValue.tipText = '左键点击完成绘制';
break;
}
$("#drawTipText").text(modValue.tipText)
});
layer.on('pm:snapdrag', function (e) {
// ////console.log(e)
switch (modValue.drawModel) {
case "polyline":
modValue.tipText = '左键双击结束绘制';
break;
case "polygon":
modValue.tipText = '左键点击绘制面标注;点击第一个点完成绘画';
break;
case "rectangle":
modValue.tipText = '左键点击完成绘制';
break;
case "circle":
modValue.tipText = '左键点击完成绘制';
break;
}
$("#drawTipText").text(modValue.tipText)
});
});
// 图形创建后编辑及绑定弹窗
map3.on('pm:create', function (e) {
modValue.lastGuid = "";
bindEdit(e);
$('#toolsBar .tools-painting').removeClass('cur');
});
//移除当前图形选择
function rmDom(shape) {
switch (shape) {
case 4:
$('.tsTX .polygon').removeClass('active');
break;
case 3:
$('.tsTX .polyline').removeClass('active');
break;
case 5:
$('.tsTX .rectangle').removeClass('active');
break;
case 6:
$('.tsTX .circle').removeClass('active');
break;
case 1:
$('.tsTX .point').removeClass('active');
break;
}
}
$(".pubPop button.del").bind("click", function () {
// delPoint(guid);
// delete modValue.tdPoints[shortGu];
//console.log("shanchu")
})
// 图形绘制
$(".tsTX li").on("click", function () {
if (map23DData.display.map2D) {
$(".tsTX li").not(this).removeClass('active')
if ($(this).hasClass('active')) {
$(this).removeClass('active')
} else {
$(this).addClass('active')
$(".tsAct li").removeClass("active");
$(".draw-polyline-latlngs-picker").hide();
}
if ($(this).hasClass("label")) {
modValue.label = true;
} else {
modValue.label = false;
}
moveTip($(this).attr("layer"));
modValue.drawModel = $(this).attr("layer");
} else if ($(this).hasClass("point")) {
$(".tsTX li").not(this).removeClass('active')
if ($(this).hasClass('active')) {
$(this).removeClass('active')
} else {
$(this).addClass('active')
$(".tsAct li").removeClass("active");
$(".draw-polyline-latlngs-picker").hide();
}
} else {
alert("三维暂只支持点标注")
}
})
/**
* 下载文件
*/
var downloadTextFile = function (mobileCode) {
var v = IEVersion();
if (v == 'ie' || v == 'Edge') {
var fileObj = new Blob([mobileCode], {
type: 'json/application'
});
// ////console.log(fileObj);
window.navigator.msSaveBlob(fileObj, '标注' + getdate() + '.json');
} else if (v == '-1') {
var file = new File([mobileCode], '标注' + getdate() + '.json', {
type: "text/plain;charset=utf-8"
});
saveAs(file);
}
setTimeout(function () {
$(".tsAct li.export").removeClass('active')
}, 200)
}
//判断是否是IE浏览器,包括Edge浏览器
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE浏览器
var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器
if (isIE) {
return "ie";
} else if (isEdge) {
return "Edge";
} else {
return "-1"; //非IE
}
}
var adName = '';
$("#userDrawAddName").on("change", function () {
adName = $("#userDrawAddName").val();
})
$("#userDrawAddModal .form .sure").bind("click", function () {
saveDraw(adName + ";" + getdate(), 'all', 'add', false, getdate());
$("#userDrawAddModal").hide();
})
$("#userDrawAddModal .close").bind("click", function () {
$("#userDrawAddModal").hide();
})
}
//获取点位位置信息
function getPointName(earthLatlng, callback) {
var addressSearch = new addressSearchF();
var region = addressSearch.getAddressInfo({
// zoom: map2DViewer.map.getZoom(),
zoom: map23DData.view.zoom,
latLng: [earthLatlng.lat, earthLatlng.lng]
}, function (data) {
var data = data.data;
callback(data.region);
});
}
function popact(guid, type) {
$(".pubPop").children().not(".pubPop_2").not(".ppfooter").bind("click", function () {
$(".pubPop_2." + guid).removeClass("active");
})
$(".pubPop").children().not(".intro").bind("click", function () {
$(".popTips").remove();
})
$("#" + guid + " .point").unbind("click").bind("click", function () {
if ($(".pubPop_2." + guid).hasClass("active")) {
$(".pubPop_2." + guid).removeClass("active")
} else {
$(".pubPop_2." + guid).addClass("active");
}
})
$("#" + guid + " h4").dragmove($("#" + guid));
setTimeout(function () {
$("#" + guid + " .close").one("click", function () {
if (modValue.clostat) {
$("#" + guid).removeClass("active");
$(".pubPop_2." + guid).removeClass("active");
$(".popTips").remove();
saveSingle(guid);
}
if (modValue.lastGuid) {
$("#" + guid).attr('id', modValue.lastGuid);
}
})
}, 200)
$("#" + guid + " .lineStyle").unbind("click").bind("click", function () {
setStyle(guid)
})
}
function layerActs(e) {
var id = e.target._leaflet_id;
if (e.target.shape == "Marker") {
var lat = e.latlng.lat;
var lng = e.latlng.lng;
$("#" + id + " .ppfooter input").eq(0).val(lat);
$("#" + id + " .ppfooter input").eq(1).val(lng);
pTle = "点标注";
$("#" + id + " h4 .bt").text(pTle);
getPointName(e.latlng, function (addr) {
pTle = addr;
$("#" + id + " h4 .bt").text(addr);
});
}
if ($("#" + id).hasClass("active")) {
$("#" + id).removeClass("active")
modValue.clostat = true;
} else {
$("#" + id).addClass("active")
modValue.clostat = false;
setTimeout(function () {
modValue.clostat = true;
}, 400)
$("#" + id + " .close").unbind("click").bind("click", function () {
if (modValue.clostat) {
$("#" + id).removeClass("active");
$(".pubPop_2." + id).removeClass("active");
$(".popTips").remove();
saveSingle(id);
}
if (modValue.lastGuid) {
$("#" + id).attr('id', modValue.lastGuid);
}
})
}
}
// 设置文字样式
function setTxt(lat, lng, guid, type, txtContent, tcolor) {
var myIcon = L.divIcon({
html: txtContent,
className: guid,
iconSize: 30
});
modValue.hdGuid.push(guid);
modValue.labelCss = {};
modValue.labelCss = L.marker([lat, lng], {
icon: myIcon
}).addTo(map3);
modValue.labelCss.shape = 'Marker';
var txtStyle = {
width: 145,
font: 28,
color: '#00f'
}
if (type == 'point') {
txtStyle.width = 200;
txtStyle.font = 20;
txtStyle.color = '#f00';
txtStyle.shadow = '0';
$(".leaflet-marker-icon." + guid).css({
'margin-left': 15 + 'px',
'margin-top': -70 + 'px',
'text-shadow': 0
})
modValue.textGuids.push(guid)
} else if (type == 'label') {
$(".leaflet-marker-icon." + guid).css({
"text-shadow": 1 + "px " + 0 + "px " + 0 + "px #fff"
})
$("#" + guid + " .close").unbind("click").bind("click", function () {
$("#" + guid).removeClass("active");
$(".pubPop_2." + guid).removeClass("active");
saveSingle(modValue.labelCss._leaflet_id, guid);
})
$(".leaflet-marker-icon." + guid).unbind("click").bind("click", function () {
if ($("#" + guid).hasClass("active")) {
$("#" + guid).removeClass("active")
} else {
$("#" + guid).addClass("active")
$("#" + guid + " .close").unbind("click")
setTimeout(function () {
$("#" + guid + " .close").unbind("click").bind("click", function () {
$("#" + guid).removeClass("active");
$(".pubPop_2." + guid).removeClass("active");
saveSingle(modValue.labelCss._leaflet_id, guid);
})
}, 300)
}
})
}
modValue.labelCss.options = {
Oclass: guid,
Ofz: txtStyle.font,
Oc: txtStyle.color,
Off: '黑体',
txt: txtContent
}
map3._layers[modValue.labelCss._leaflet_id].saveStatu = true;
$(".leaflet-marker-icon." + guid).css({ //设置文字样式
"width": txtStyle.width + "px",
"height": "auto",
"font-size": txtStyle.font + "px",
"color": txtStyle.color,
"font-family": "黑体",
"word-break": "break-all"
})
}
// 切换时更新三维数据
function up3DrawData() {
var data = map2DViewer.map._layers;
$.each(data, function (key, dl) {
if (dl.shape == 'Line') {
var coods = [];
for (var j = 0; j < dl._latlngs.length; j++) {
coods.push([dl._latlngs[j].lng, dl._latlngs[j].lat]);
}
updateLine(modValue.tdline[dl._leaflet_id], coods,dl.options.color);
}
});
// return JSON.stringify(data);
}
function bindEdit(e) {
modValue.closeSave = true;
$(".tsTX li").not(".point").not(".label").removeClass('active')
// //console.log(e);
$(".leaflet-popup-tip-container").hide();
var layer = e.layer || e;
var shape = e.shape;
var tdpoint = ''; //三维点guid
modValue.drawLayerGuids.push(layer._leaflet_id);
var guid = layer._leaflet_id;
modValue.globalGuid = guid;
// //console.log(layer._leaflet_id);
layer.on('pm:dragend', function (item) {
console.log(item);
layer._latlngs = item.target._latlngs;
});
map3._layers[guid].shape = shape;
map3._layers[guid].saveStatu = false;
var lat, lng;
var pTle, type;
if (modValue.label == false) {
switch (shape) {
case "Poly":
pTle = "面标注";
type = 4;
$("#drawTipText").hide();
// 同时添加三维面
var coods = [];
for (var j = 0; j < layer._latlngs[0].length; j++) {
coods.push([layer._latlngs[0][j].lng, layer._latlngs[0][j].lat]);
}
var tdguid = add3DPoly(coods);
modValue.tdpoly[guid] = tdguid;
break;
case "Line":
pTle = "绘制路线";
type = 3;
$("#drawTipText").hide();
// 同时添加三维线段
var coods = [];
for (var j = 0; j < layer._latlngs.length; j++) {
coods.push([layer._latlngs[j].lng, layer._latlngs[j].lat]);
}
var tdguid = add3DLine(coods);
modValue.tdline[guid] = tdguid;
break;
case "Rectangle":
pTle = "矩形";
type = 5;
$("#drawTipText").hide();
// 同时添加三维面
var coods = [];
for (var j = 0; j < layer._latlngs[0].length; j++) {
coods.push([layer._latlngs[0][j].lng, layer._latlngs[0][j].lat]);
}
var tdguid = add3DPoly(coods);
modValue.tdpoly[guid] = tdguid;
break;
case "Circle":
pTle = "圆";
type = 6;
$("#drawTipText").hide();
// 同时添加三维圆
var coods = [layer._latlng.lng, layer._latlng.lat];
var tdguid = add3DCircle(coods, layer._mRadius);
modValue.tdcircle[guid] = tdguid;
break;
case "Marker":
lat = e.marker._latlng.lat || e._latlng.lat;
lng = e.marker._latlng.lng || e._latlng.lng;
pTle = "点标注";
getPointName(e.marker._latlng, function (addr) {
pTle = addr;
$("#" + guid + " h4 .bt").text(addr);
// setTxt(lat,lng,guid,'point',pTle);
setTxt(lat, lng, guid, 'point', '');
// 添加三维标注点
var rs = [lng, lat];
tdpoint = addPoint(addr, rs);
modValue.tdian[guid] = tdpoint;
$("#" + guid + " h4 .bt").attr("tdm", tdpoint);
// $(".leaflet-marker-icon."+guid).text(pTle);
});
type = 1;
break;
}
layer.addEventListener('click', function (e) {
layerActs(e);
layer.pm.toggleEdit();
});
//定制dom
var popStyle = '';
if (modValue.drawModel == "point") {
var popTop = '
' +
'
' + pTle + '×
' +
'
标注名称
' +
'
' +
'
' +
'
';
var imgUrl = onemapUrlConfig.siteUrl + "/images/tools/new/grayPoint.png";
popFooter = '';
popStyle = '
' +
'
图标
' +
'

' +
'

' +
'

' +
'

' +
'

' +
'

' +
'
';
} else {
//默认dom
var popTop = '
' +
'
' + pTle + '×
' +
'
路线名称
' +
'
' +
'
' +
'
';
popFooter = '';
popStyle = '
' +
'
线条颜色
' +
'' +
'' +
'' +
'' +
'
';
}
var pop = popTop + popFooter + popStyle + '
';
//绑定弹窗
$("body").append($(pop));
if (modValue.drawModel == "point") {
setTimeout(function () {
$("#" + guid).css({
"left": modValue.textPosition.left,
"top": modValue.textPosition.top
})
$(".tsTX li.point").click();
$("#" + guid).addClass("active");
popact(guid, 'point')
}, 200)
// } else if(modValue.drawModel == "circle"){
} else {
setTimeout(function () {
$("#" + guid).css({
"left": modValue.textPosition.left,
"top": modValue.textPosition.top
})
$("#" + guid).addClass("active");
popact(guid)
}, 200)
}
// var b = layer.bindPopup(pop).openPopup();
//样式设置
map3._layers[guid].lastLayer = {};
map3._layers[guid].styleStatu = 0;
//附加说明链接控制
var poplink = '
' +
'
链接快捷编辑
' +
'
链接文字
' +
'
' +
'
链接地址
' +
'
生成
' +
'
';
var popimg = '
' +
'
图像快捷编辑
图像链接
' +
'
生成
' +
'
';
var popvideo = '
' +
'
视频快捷编辑
视频链接
' +
'
生成
' +
'
';
var apStatu = 0;
$("#" + guid + " .intro .tips img.tplink").bind("click", function () {
if (apStatu != 1) {
apStatu = 1;
$("#" + guid + " .popTips").remove();
$("#" + guid).append($(poplink));
var pTxt, pLink;
$("#" + guid + " .pubPop_link div input.link").on("change", function () {
pLink = $("#" + guid + " .pubPop_link div input.link").val();
})
$("#" + guid + " .pubPop_link div input.wz").on("change", function () {
pTxt = $("#" + guid + " .pubPop_link div input.wz").val();
})
$("#" + guid + " .pubPop_link div .shengcheng").bind("click", function () {
if (pTxt == undefined) {
pTxt = '链接'
}
var a = '
' + pTxt + '';
var v = $("#" + guid + " textarea").val();
$("#" + guid + " textarea").val(v + a);
map3._layers[guid].tip = v + a;
$("#" + guid + " .pubPop_link").remove();
apStatu = 0;
})
} else if (apStatu == 1) {
$("#" + guid + " .pubPop_link").remove();
apStatu = 0;
}
})
$("#" + guid + " .intro .tips img.tpimg").unbind("click").bind("click", function () {
if (apStatu != 2) {
apStatu = 2;
$(".popTips").remove();
$("#" + guid).append($(popimg));
var pTxt, pLink;
$(".pubPop_img div input.link").on("change", function () {
pLink = $(".pubPop_img div input.link").val();
})
$(".pubPop_img div .shengcheng").bind("click", function () {
var a = '

';
var v = $("#" + guid + " textarea").val();
$("#" + guid + " textarea").val(v + a);
map3._layers[guid].tip = v + a;
$(".pubPop_img").remove();
apStatu = 0;
})
} else if (apStatu == 2) {
$(".pubPop_img").remove();
apStatu = 0;
}
})
$("#" + guid + " .intro .tips img.tpvideo").unbind("click").bind("click", function () {
if (apStatu != 3) {
apStatu = 3;
$(".popTips").remove();
$("#" + guid).append($(popvideo));
var pTxt, pLink;
$(".pubPop_video div input.link").on("change", function () {
pLink = $(".pubPop_video div input.link").val();
})
$(".pubPop_video div .shengcheng").bind("click", function () {
var a = '
';
var v = $("#" + guid + " textarea").val();
$("#" + guid + " textarea").val(v + a);
map3._layers[guid].tip = v + a;
$(".pubPop_video").remove();
apStatu = 0;
})
} else if (apStatu == 3) {
$(".pubPop_video").remove();
apStatu = 0;
}
})
$("#" + guid + " .zhuji").bind("input propertychange", function (event) {
var viewName = this.value;
$(".leaflet-marker-icon." + guid).text(viewName)
map3._layers[guid].zhuji = viewName;
});
$("#" + guid + " textarea").bind("input propertychange", function (event) {
map3._layers[guid].tip = this.value;
});
//位置修改
$("#" + guid + " .ppfooter .yuanbg").bind('click', function (event) {
// if (event.keyCode == "13") {
//回车执行跳转
console.log("ttasdf")
var wz1 = JSON.parse($("#" + guid + " .ppfooter .weizhi").eq(0).val());
var wz2 = JSON.parse($("#" + guid + " .ppfooter .weizhi").eq(1).val());
map2DViewer.map._layers[guid].setLatLng({
lat: wz1,
lng: wz2
});
var nm = $(".leaflet-marker-icon." + guid).text();
$(".leaflet-marker-icon." + guid).remove();
getPointName({
lat: wz1,
lng: wz2
}, function (addr) {
$("#" + guid + " h4 .bt").text(addr);
})
setTxt(wz1, wz2, guid, 'point', nm);
map23DControl.setView({
center: {
lat: wz1,
lng: wz2
},
zoom: map2DViewer.map.getZoom()
})
// }
});
$("#" + guid + " .ppfooter .weizhi").bind('keydown', function (event) {
if (event.keyCode == "13") {
return false;
}
})
if (modValue.drawModel == "point") {
// 使用用户自己的图标
var eqIcon;
// var eqIcon = map23DConfig.map23DAssetsUrl+'/images/layout/marker/roadsign_type_1_m.png';
var LeafIcon = L.Icon.extend({
options: {
iconSize: [25, 41],
iconAnchor: [12, 41]
}
});
$(".pubPop_2." + guid + " .icon-list span img").unbind("click").bind("click", function () {
var tid = $(this).attr("tid");
switch (tid) {
case "1":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/r1.png';
break;
case "2":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/r2.png';
break;
case "5":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/b1.png';
break;
case "6":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/b2.png';
break;
case "9":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/y1.png';
break;
case "10":
eqIcon = map23DConfig.map23DAssetsUrl + '/images/layout/marker/y2.png';
break;
}
// ////console.log(eqIcon);
$(".pubPop_2." + guid + " .icon-list span").removeClass("select");
$(this).parent().addClass("select")
var greenIcon = new LeafIcon({
iconUrl: eqIcon
});
layer.setIcon(greenIcon)
})
}
} else if (modValue.drawModel == "label") {
var lat = e.marker._latlng.lat || e._latlng.lat;
var lng = e.marker._latlng.lng || e._latlng.lng;
var labelTitle = '文本注记';
getPointName(e.marker._latlng, function (addr) {
labelTitle = addr;
$("#" + guid + " h4 .bt").text(addr);
});
modValue.textGuids.push(guid);
var popLabel = '
' + labelTitle + '×
' +
'
注记文本
' +
'
' +
'
' +
'
文字大小
' +
'
' +
'
文字样式
' +
'
' +
'
文字颜色
' +
'
' +
'' +
'' +
'' +
'' +
'
';
var myIcon = L.divIcon({
html: "新文本",
className: guid,
iconSize: 30
});
modValue.hdGuid.push(guid);
modValue.labelCss = {};
modValue.labelCss = L.marker([lat, lng], {
icon: myIcon
}).addTo(map3);
modValue.labelCss.shape = 'Label';
modValue.labelCss.options = {
Oclass: guid,
Ofz: 28,
Oc: '#00f',
Off: '黑体',
txt: '新文本'
}
map3._layers[modValue.labelCss._leaflet_id].saveStatu = false;
$(".leaflet-marker-icon." + guid).css({ //设置文字样式
"width": 145 + "px",
"height": "auto",
"font-size": 28 + "px",
"color": "#00f",
"text-shadow": 1 + "px " + 0 + "px " + 0 + "px #fff",
"font-family": "黑体",
"word-break": "break-all"
})
//绑定弹窗
$("body").append($(popLabel));
setTimeout(function () {
$("#" + guid).addClass("active");
$("#" + guid).css({
"left": modValue.textPosition.left,
"top": modValue.textPosition.top
})
$(".tsTX li.label").click();
}, 200)
var rs = [lng, lat];
var tdlabel = "新文本";
var color = "#00f";
var ibg = '../../scripts/vendor/leaflet/draw_new/images/marker-icon.png';
// setTxt(lat,lng,guid,'label','新文本');//添加二维文本
map3._layers[guid].shape = 'Label';
var tdguid = addPoint(tdlabel, rs, ibg, '#00f'); // 添加三维文本
modValue.tdian[guid] = tdguid;
$(".pubPop").children().not(".pubPop_2").not(".ppfooter").unbind("click").bind("click", function () {
$(".pubPop_2." + guid).removeClass("active");
})
$(".pubPop").children().not(".intro").bind("click", function () {
$(".popTips").remove();
})
$("#" + guid + " h4").dragmove($("#" + guid));
// var b = layer.bindPopup(popLabel).openPopup();
$("#" + guid + " button.del").bind("click", function () {
// ////console.log("del")
$("#" + guid).remove();
$(".leaflet-marker-icon." + guid).remove();
map3._layers[guid].remove();
})
$("#" + guid + " .close").one("click", function () {
$("#" + guid).removeClass("active");
$(".pubPop_2." + guid).removeClass("active");
saveSingle(modValue.labelCss._leaflet_id, guid);
})
$(".leaflet-marker-icon." + guid).unbind("click").bind("click", function () {
$("#" + guid).addClass('active');
setTimeout(function () {
$("#" + guid + " .close").one("click", function () {
$("#" + guid).removeClass("active");
$(".pubPop_2." + guid).removeClass("active");
saveSingle(modValue.labelCss._leaflet_id, guid);
})
}, 250)
})
$("#" + guid + " .zhuji").bind("input propertychange", function (event) {
tdlabel = this.value;
$(".leaflet-marker-icon." + guid).text(tdlabel);
map3._layers[guid].zhuji = tdlabel;
modValue.labelCss.options.txt = tdlabel;
});
$("#" + guid + " button.txt").bind("click", function () {
if ($(".pubPop_2." + guid).hasClass("active")) {
$(".pubPop_2." + guid).removeClass("active")
} else {
$(".pubPop_2." + guid).addClass("active")
}
})
//文本样式设置
var daxiao = 28,
ziti = 'Microsoft yahei',
yanse = '#000';
$("#" + guid + " .daxiao").on("change", function () {
if ($(this).val() == '大') {
daxiao = 28;
} else if ($(this).val() == '中') {
daxiao = 20;
} else if ($(this).val() == '小') {
daxiao = 12;
}
$(".leaflet-marker-icon." + guid).css("font-size", daxiao + "px");
// map3._layers[guid].options.Ofz = daxiao;
modValue.labelCss.options.Ofz = daxiao;
})
$("#" + guid + " .yangshi").on("change", function () {
ziti = $(this).val();
if ($(this).val() == '微软雅黑') {
ziti = 'Microsoft yahei';
}
$(".leaflet-marker-icon." + guid).css("font-family", ziti);
// map3._layers[guid].options.Off = ziti;
modValue.labelCss.options.Off = ziti;
})
$("#" + guid + " .yanse span").on("click", function () {
yanse = $(this).attr("layer");
var sd = "fff";
switch (yanse) {
case "ys8":
yanse = "#000";
break;
case "ys1":
yanse = "#00f";
break;
case "ys6":
yanse = "#828282";
break;
case "ys2":
yanse = "#007C00";
break;
case "ys4":
yanse = "#FF9E02";
sd = "000";
break;
case "ys3":
yanse = "#FE1D23";
break;
case "ys7":
yanse = "#fff";
sd = "000";
break;
case "ys5":
yanse = "#FFFD00";
sd = "000";
break;
}
$(".leaflet-marker-icon." + guid).css({
"color": yanse,
"text-shadow": 1 + "px " + 0 + "px " + 0 + "px #" + sd
});
// map3._layers[guid].options.Oc = yanse;
modValue.labelCss.options.Oc = yanse;
$("#" + guid + " .yanse span").not(this).removeClass("active");
$(this).addClass("active");
})
}
}
// 删除旧的页面标注
function cleanOld() {
// 清除旧的三维数据
var oldtd = modValue.tdshowData;
$.each(oldtd.polyArr, function (key, dl) {
delPolygon(dl);
var index = oldtd.polyArr.indexOf(dl);
if (index > -1) {
oldtd.polyArr.splice(index, 1);
}
})
$.each(oldtd.lineArr, function (key, dl) {
delPolyline(dl);
var index = oldtd.lineArr.indexOf(dl);
if (index > -1) {
oldtd.lineArr.splice(index, 1);
}
})
$.each(oldtd.pointArr, function (key, dl) {
delPoint(dl);
var index = oldtd.pointArr.indexOf(dl);
if (index > -1) {
oldtd.pointArr.splice(index, 1);
}
})
}
// 展示当前页
function showDraw(data) {
var tuxingData = JSON.parse(data.draw_data);
var layer;
var Did = data._id;
$(".leaflet-marker-icon." + Did).remove();
$("#" + Did).remove();
if (data.name.indexOf(";") > -1) {
var darr = data.name.split(";");
data.name = darr[0];
data.tip = darr[2];
}
////console.log(tuxing);
var tuxing = [];
var LeafIcon = L.Icon.extend({
options: {
iconSize: [25, 41],
iconAnchor: [12, 41]
}
});
if (tuxingData.shape) {
tuxing.push(tuxingData);
} else {
tuxing = tuxingData;
}
// $("#userContent .userInfo .moreLink .linkList li.myBh").show();
for (var i = 0; i < tuxing.length; i++) {
if (tuxing[i].shape == 'Poly') {
if (!tuxing[i].zhuji) {
tuxing[i].zhuji = data.name;
}
layer = L.polygon(tuxing[i].LatLngs, tuxing[i].options).addTo(map3);
layer.shape = 'Poly';
// 同时添加三维面
var coods = [];
for (var j = 0; j < tuxing[i].LatLngs[0].length; j++) {
coods.push([tuxing[i].LatLngs[0][j].lng, tuxing[i].LatLngs[0][j].lat]);
}
coods.push([tuxing[i].LatLngs[0][0].lng, tuxing[i].LatLngs[0][0].lat]);
var polyid;
if (tuxing[i].options.color) {
polyid = add3DPoly(coods, tuxing[i].options.color);
} else {
polyid = add3DPoly(coods);
}
modValue.tdpoly[layer._leaflet_id] = polyid;
// modValue.tdshowData.polyArr.push(polyid);
}
if (tuxing[i].shape == 'Line') {
if (!tuxing[i].zhuji) {
tuxing[i].zhuji = data.name;
}
layer = L.polyline(tuxing[i].LatLngs, tuxing[i].options).addTo(map3);
layer.shape = 'Line';
// 同时添加三维线段
var coods = [];
for (var j = 0; j < tuxing[i].LatLngs.length; j++) {
coods.push([tuxing[i].LatLngs[j].lng, tuxing[i].LatLngs[j].lat]);
}
var lineid;
if (tuxing[i].options.color) {
lineid = add3DLine(coods, tuxing[i].options.color);
} else {
lineid = add3DLine(coods);
}
modValue.tdline[layer._leaflet_id] = lineid;
// modValue.tdshowData.lineArr.push(lineid);
}
if (tuxing[i].shape == 'Rectangle') {
if (!tuxing[i].zhuji) {
tuxing[i].zhuji = data.name;
}
layer = L.polygon(tuxing[i].LatLngs, tuxing[i].options).addTo(map3);
layer.shape = 'Rectangle';
// 同时添加三维面
var coods = [];
for (var j = 0; j < tuxing[i].LatLngs[0].length; j++) {
coods.push([tuxing[i].LatLngs[0][j].lng, tuxing[i].LatLngs[0][j].lat]);
}
coods.push([tuxing[i].LatLngs[0][0].lng, tuxing[i].LatLngs[0][0].lat]);
var polyid;
if (tuxing[i].options.color) {
polyid = add3DPoly(coods, tuxing[i].options.color);
} else {
polyid = add3DPoly(coods);
}
modValue.tdpoly[layer._leaflet_id] = polyid;
// modValue.tdshowData.polyArr.push(polyid);
}
if (tuxing[i].shape == 'Marker') {
if (!tuxing[i].zhuji) {
tuxing[i].zhuji = data.name;
}
if (tuxing[i].options.icon) {
var xinOp = {};
xinOp.draggable = tuxing[i].options.draggable;
xinOp.opacity = tuxing[i].options.opacity;
layer = L.marker(tuxing[i].LatLngs, xinOp).addTo(map3);
var eqIcon = tuxing[i].options.icon.options.iconUrl;
var greenIcon = new LeafIcon({
iconUrl: eqIcon
});
layer.setIcon(greenIcon)
} else {
layer = L.marker(tuxing[i].LatLngs, tuxing[i].options).addTo(map3);
}
layer.shape = 'Marker';
// 同时添加文本注记
var myIcon = L.divIcon({
html: tuxing[i].zhuji || data.name,
className: Did,
iconSize: 30
});
var atxt = L.marker([tuxing[i].LatLngs.lat, tuxing[i].LatLngs.lng], {
icon: myIcon
}).addTo(map3);
$(".leaflet-marker-icon." + Did).css({ //设置文字样式
"width": 200 + "px",
"height": "auto",
"font-size": 20 + "px",
"color": '#f00',
"word-break": "break-all",
'margin-left': 15 + 'px',
'margin-top': -70 + 'px',
})
$(".leaflet-marker-icon." + Did).prev().addClass(Did.toString()); //Marker添加class
modValue.textGuids.push(Did);
// 同时添加三维数据
var rs = [tuxing[i].LatLngs.lng, tuxing[i].LatLngs.lat]
var guid = '';
if (tuxing[i].options.icon) {
var eqIcon = tuxing[i].options.icon.options.iconUrl;
guid = addPoint(tuxing[i].zhuji || data.name, rs, eqIcon);
modValue.tdian[layer._leaflet_id] = guid;
} else {
guid = addPoint(tuxing[i].zhuji || data.name, rs)
modValue.tdian[layer._leaflet_id] = guid;
}
//展示后的三维数据存储到tdPoints中
var os = {};
os.lng = tuxing[i].LatLngs.lng;
os.lat = tuxing[i].LatLngs.lat;
var tdm = {
guid: guid,
shape: 'Marker',
LatLngs: os,
options: '',
zhuji: tuxing[i].zhuji || data.name,
tip: data.tip || '',
erid: Did
};
ONEMAP.D.transArr[Did] = guid;
modValue.tdPoints[guid] = tdm;
// 展示中存储
// modValue.tdshowData.pointArr.push(guid);
}
if (tuxing[i].shape == 'Label') {
var myIcon = L.divIcon({
html: data.name || tuxing[i].options.txt,
className: tuxing[i].options.Oclass,
iconSize: 30
});
// layer = L.marker(tuxing[i].LatLngs, { icon: myIcon }).addTo(map3);
if (tuxing[i].options.Oclass) {
layer = L.marker(tuxing[i].LatLngs, {
icon: myIcon
}).addTo(map3);
} else {
layer = {};
}
$(".leaflet-marker-icon." + tuxing[i].options.Oclass).css({ //设置文字样式
"width": 145 + "px",
"height": "auto",
"font-size": tuxing[i].options.Ofz + "px",
"color": tuxing[i].options.Oc,
"text-shadow": 1 + "px " + 0 + "px " + 0 + "px #fff",
"font-family": tuxing[i].options.Off,
"word-break": "break-all",
"opacity": 1
})
$(".leaflet-marker-icon." + tuxing[i].options.Oclass).addClass(Did.toString());
layer.shape = 'Label';
tuxing[i].zhuji = data.name || tuxing[i].options.txt;
// 同时添加三维数据
var rs = [tuxing[i].LatLngs.lng, tuxing[i].LatLngs.lat]
var guid = '';
var ibg = '../../scripts/vendor/leaflet/draw_new/images/marker-icon.png';
// if(tuxing[i].options.icon){
// var eqIcon = tuxing[i].options.icon.options.iconUrl;
// guid = addPoint(tuxing[i].zhuji||data.name,rs,eqIcon);
// modValue.tdian[atxt._leaflet_id] = guid;
// } else{
guid = addPoint(tuxing[i].zhuji || data.name, rs, ibg, tuxing[i].options.Oc || '#00f')
modValue.tdian[layer._leaflet_id] = guid;
// }
}
if (tuxing[i].shape == 'Circle') {
if (!tuxing[i].zhuji) {
tuxing[i].zhuji = data.name;
}
var cl = '#3388ff'
if (tuxing[i].options.color) {
cl = tuxing[i].options.color
}
layer = new L.Circle(tuxing[i].LatLngs, tuxing[i].options.radius, {
color: cl, //颜色
fillColor: tuxing[i].options.fillColor || cl,
fillOpacity: tuxing[i].options.fillOpacity || 0.5, //透明度
}).addTo(map3);
layer.shape = 'Circle';
// 添加三维圆
var rs = [tuxing[i].LatLngs.lng, tuxing[i].LatLngs.lat]
var guid = add3DCircle(rs, tuxing[i].options.radius, cl);
modValue.tdcircle[layer._leaflet_id] = guid;
}
// Did = 'd_'+(Did+i);
// Did = Did+i;
////console.log(layer);
if (layer != undefined) {
modValue.drawLayerGuids.push(layer._leaflet_id);
}
var label = '';
if ((tuxing[i].zhuji || tuxing[i].tip) && tuxing[i].options.opacity != 0.0001) {
if (tuxing[i].tip == undefined || tuxing[i].tip == 'undefined' || typeof (tuxing[i].tip) == undefined) {
tuxing[i].tip = '';
}
if (tuxing[i].zhuji == undefined || tuxing[i].zhuji == 'undefined' || typeof (tuxing[i].zhuji) == undefined) {
tuxing[i].zhuji = '';
}
if (data.tip) {
tuxing[i].tip = data.tip;
}
label = '
' +
'
' + data.name + '×
' +
'
注记文本
' +
'
' +
'
附加说明
' +
'
' +
'
' + tuxing[i].tip + '
';
$(label).appendTo($("#wrapper"))
var lingid;
layer.addEventListener('click', function (e) {
//console.log(e);
lingid = e.target._leaflet_id;
$("." + lingid).css({
"left": e.containerPoint.x + 30 + "px",
"top": e.containerPoint.y + 30 + "px"
});
if ($("." + lingid).hasClass("xianshi")) {
$("." + lingid).removeClass("xianshi");
} else {
$("." + lingid).addClass("xianshi")
modValue.cln = false;
$("#" + Did + " .close").unbind("click").bind("click", function () {
if (modValue.cln) {
// if(map3._layers[layer._leaflet_id]){map3._layers[layer._leaflet_id].remove();}
$("#" + Did).removeClass("xianshi");
}
})
setTimeout(function () {
modValue.cln = true;
}, 250)
}
})
//列表弹窗拖拽
$("#" + Did + " h4").dragmove($("#" + Did));
// $("#"+Did).show();
map3._layers[layer._leaflet_id].zhuji = $("#" + Did + " .zhuji").val();
map3._layers[layer._leaflet_id].tip = $("#" + Did + " .draw-latlngs-textarea").val()
$("#" + Did + " .zhuji").bind("input propertychange", function (event) {
map3._layers[layer._leaflet_id].zhuji = this.value;
data.name = this.value;
});
//删除
$("#" + Did + ".pubPop h4 .del").bind("click", function () {
$("#" + Did).remove();
// 三维删除
delPoint(modValue.tdian[layer._leaflet_id]);
delete modValue.tdian[layer._leaflet_id];
deltdCircle(modValue.tdcircle[layer._leaflet_id]);
delete modValue.tdcircle[layer._leaflet_id];
deltdline(modValue.tdline[layer._leaflet_id]);
delete modValue.tdline[layer._leaflet_id];
deltdpoly(modValue.tdpoly[layer._leaflet_id]);
delete modValue.tdpoly[layer._leaflet_id];
// 二维删除
map3.removeLayer(map3._layers[layer._leaflet_id]);
$(".leaflet-marker-icon." + Did).remove();
// 收藏删除
ONEMAP.M.userDraw.delFav(Did);
// $("#usdFavor #userFavList dt."+Did).find(".del").click();
})
// $("#"+Did+" .tName").bind("input propertychange",function(event){
// data.name = this.value;
// });
$("#" + Did + " .draw-latlngs-textarea").bind("input propertychange", function (event) {
map3._layers[layer._leaflet_id].tip = this.value;
data.tip = this.value;
});
$("#" + Did + " .cgEdit").bind("click", function () {
if ($(this).hasClass('cur')) {
//无update,change方法
// saveDraw(data.name,'all','update',Did);
updateDraw(Did, data.name + ";" + getdate() + ";" + data.tip);
$("#" + Did + " .bt").text(data.name);
$(".leaflet-marker-icon." + Did).text(data.name);
//信息已修改
// map3._layers[layer._leaflet_id].remove();
// $("#"+Did).remove();
$("#" + Did).removeClass("xianshi");
} else {
$("#" + Did + " .zhuji").removeAttr("readonly");
$("#" + Did + " .draw-latlngs-textarea").show();
// $("#"+Did+" .tName").show();
$("#" + Did + " .yingXiang").hide();
$(this).text("完成");
$(this).addClass('cur')
}
});
// setTimeout(function(){
// $("#"+Did+" .close").unbind("click").bind("click",function(){
// // if(map3._layers[layer._leaflet_id]){map3._layers[layer._leaflet_id].remove();}
// $("#"+Did).removeClass("xianshi");
// })
// },250)
}
}
// if(map23DData.display.map2D){
// modValue.controlAll();
// }
// 用户中心删除
$("#userFavList .sure").bind("click", function () {
console.log("223423")
// map3._layers[layer._leaflet_id].remove();
// $("#"+Did).remove();
// $("."+tuxing[i].options.Oclass).remove();
})
}
//更新数据
function updateDraw(guid, name) {
var options = {};
options._id = guid;
options.name = name;
$.ajax({
type: "get",
dataType: 'json',
url: onemapUrlConfig.userCenterUrl + '/draw/update',
data: options,
success: function (data) {
console.log(data);
ONEMAP.M.userDraw.getFavData();
}
})
}
//保存数据
function saveDraw(name, quantity, action, guid, infoName) {
//构造数据
modValue.ajaxData.name = name;
modValue.ajaxData.center_lon = map2DViewer.map.getCenter()['lng'];
modValue.ajaxData.center_lat = map2DViewer.map.getCenter()['lat'];
modValue.ajaxData.initial_zoom = map2DViewer.map.getZoom();
modValue.ajaxData.map_type = 1;
if (quantity == 'all') {
modValue.ajaxData.draw_data = jsonDrawData();
} else {
modValue.ajaxData.draw_data = createSingleData(quantity);
}
// if(action == 'update'){
// modValue.ajaxData._id = guid;
// }
modValue.ajaxData.info = 'newdraw;' + infoName || 'newdraw'; //其他信息
// if(info){
// modValue.ajaxData.info = info;
// }
////console.log(modValue.ajaxData)
ONEMAP.V.loading.load();
$.ajax({
type: "post",
dataType: 'json',
url: onemapUrlConfig.userCenterUrl + '/draw/' + action,
data: modValue.ajaxData,
success: function (data) {
//console.log(data)
ONEMAP.V.loading.loaded();
if (data.code == 4) {
ONEMAP.T.noPermission('favorite');
}
if (data.code == 3) {
ONEMAP.T.logout('favorite');
}
if (data.success) {
ONEMAP.C.publisher.publish({
type: 'success',
message: '保存成功,可在“用户中心-我的收藏-绘制路线”中打开'
}, 'noteBar::add');
if (ONEMAP.M.hasOwnProperty('userDraw')) {
//ONEMAP.M.userDraw.isFavDataChange = true;
ONEMAP.M.userDraw.getFavData();
}
if (guid) {
map3._layers[guid].saveId = data.id;
}
} else if (data.msg == '标绘名已存在') {
ONEMAP.C.publisher.publish({
type: 'warning',
message: '名称重复,请填写注记文本'
}, 'noteBar::add');
}
},
error: function (errorData) {
ONEMAP.V.loading.loaded();
}
});
}
//创建单个绘制数据
function createSingleData(dl) {
var dlItem = {
shape: dl.shape,
options: dl.options,
zhuji: dl.zhuji,
tip: dl.tip
}
if (dl._latlngs && dl.options.fillOpacity != 1) {
dlItem.LatLngs = dl._latlngs;
}
if (dl._latlng) {
dlItem.LatLngs = dl._latlng;
}
//console.log(JSON.stringify(dlItem));
return JSON.stringify(dlItem);
}
function getdate() {
var now = new Date(),
y = now.getFullYear(),
m = now.getMonth() + 1,
d = now.getDate();
return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
//保存单个绘制
function saveSingle(id, delId) {
// if(modValue.drawModel=='label'||modValue.drawModel=='point'){
var info = $("#" + id + " h4 .bt").text() + " " + getdate();
var name = '未命名标注';
var sName = name + ";" + getdate();
var zj = $("#" + id + " .zhuji").val();
if (zj != "") {
sName = zj + ";" + getdate();
}
var sst;
if (map3._layers[id] != undefined) {
sst = map3._layers[id].saveStatu;
if (map3._layers[id].shape == "Label") {
info = $("#" + delId + " h4 .bt").text() + " " + getdate();
}
} else {
sst = false
}
if (id != undefined && id != 'undefined' && typeof (id) != undefined && (!isNaN(id)) && sst == false && map3._layers[id] != undefined) {
// if(id!=undefined&&id!='undefined'&&typeof(id)!=undefined&&(!isNaN(id))&&map3._layers[id]!=undefined){
// if(modValue.drawModel=='label'||modValue.drawModel=='point'||id==modValue.globalGuid&&modValue.closeSave){
var zt = '';
if (modValue.drawModel == 'label') {
var zt = map3._layers[id].options.txt;
sName = zt + ";" + getdate();
} else {
if (map3._layers[id]._latlngs) {
// map3._layers[id].setStyle({"color":"#00f"})
}
if (map3._layers[id]._latlng) {
// map3._layers[id].setOpacity(1);
}
}
//console.log("保存标注");
//console.log(map3._layers[id]);
// saveDraw(sName,map3._layers[id],'add',id,showName);
if (zt != undefined && map3._layers[id].options.opacity != 0.0001) {
saveDraw(sName, map3._layers[id], 'add', id, info);
// saveDraw(sName,'all','add');
map3._layers[id].saveStatu = true;
modValue.closeSave = false;
}
}
// }
}
//获取上一个标注id
function getLastId(e) {
// if(!modValue.labelCss){
$(".pubPop .close").click();
var pop = $(".pubPop");
var length = pop.length;
var id = parseInt(pop.eq(length - 1).attr("id"));
if (id > 0) {
saveSingle(id);
}
// } else{
// $(".pubPop .close").click();
// }
}
/**
* 解析DrawGroup图层信息并返回JSON串
* @returns {*}
* @private
*/
function jsonDrawData() {
var data = [];
// if(map23DData.display.map2D){
$.each(map3._layers, function (key, dl) {
if (dl._latlngs) {
if (dl.options.fillOpacity != 1) {
var dlItem = {
shape: dl.shape,
LatLngs: dl._latlngs,
options: dl.options,
zhuji: dl.zhuji,
tip: dl.tip
}
data.push(dlItem);
}
}
if (dl._latlng) {
if (map3._layers[dl._leaflet_id].saveStatu == false) {
var dlItem = {
shape: dl.shape,
LatLngs: dl._latlng,
options: dl.options,
zhuji: dl.zhuji,
tip: dl.tip
}
data.push(dlItem);
}
}
});
// }
// else{
// // alert(3333)
// $.each(modValue.tdPoints,function(key,dl){
// var dlItem = {
// shape: dl.shape,
// LatLngs: dl.LatLngs,
// options: dl.options,
// zhuji: dl.zhuji,
// tip: dl.tip
// }
// data.push(dlItem);
// })
// }
return JSON.stringify(data);
}
function change23D(options) {
if (options == '2d') {
$(".tsAct li.import .importFile").show();
} else {
$(".tsAct li.import .importFile").hide();
up3DrawData()
}
}
/**
* 模块移除
* @return {[type]} [description]
*/
function remove(options) {
$(".pubPop,.tdPop").remove();
ONEMAP.showhideAll = true; //全部显隐
if (!$("#userContent .userInfo .moreLink .linkList li.myBh").hasClass("uFavo")) {
$("#userContent .userInfo .moreLink .linkList li.myBh").addClass("uFavo");
}
// modValue.tdPoints = {};
// $("#userContent .userInfo .moreLink .linkList li.myBh").hide();
if (options.modName != "toolDraw") {
$('#toolsBar .tools-painting').removeClass('cur');
ONEMAP.C.publisher.publish({
modName: 'mapfish::hide'
}, 'mapfish');
map3.pm.disableDraw('Line');
} else {
if ($('#toolsBar .tools-painting').hasClass('cur')) {
$('#toolsBar .tools-painting').removeClass('cur');
ONEMAP.C.publisher.publish({
modName: 'mapfish::hide'
}, 'mapfish');
map3.pm.disableDraw('Line');
} else {
// $('#toolsBar .tools-painting').addClass('cur');
// $(".toolBF").show();
}
}
if (options.modName == "bh") {
$('#toolsBar .tools-painting').addClass('cur');
}
map3.pm.disableDraw('Marker');
map3.pm.disableDraw('Line');
map3.pm.disableDraw('Poly');
map3.pm.disableDraw('Rectangle');
map3.pm.disableDraw('Circle');
$(".tsTX li").removeClass("active");
$("#drawTipText").text("").hide();
var guids = modValue.drawLayerGuids;
for (var i = 0; i < guids.length; i++) {
if (map3._layers[guids[i]]) {
var type = map3._layers[guids[i]].shape
map3.removeLayer(map3._layers[guids[i]]);
switch (type) {
case "Poly":
case "Rectangle":
deltdpoly(modValue.tdpoly[guids[i]])
break;
case "Line":
deltdline(modValue.tdline[guids[i]])
break;
case "Label":
delPoint(modValue.tdian[guids[i]])
break;
case "Circle":
deltdCircle(modValue.tdcircle[guids[i]])
break;
default:
break;
}
}
}
modValue.drawLayerGuids = [];
var tG = modValue.textGuids;
for (var i = 0; i < tG.length; i++) {
$("." + tG[i]).remove();
// map3.removeLayer(map3._layers[tG[i]]);
}
modValue.textGuids = [];
$.each(modValue.tdPoints, function (key, dl) {
delPoint(key);
delete modValue.tdPoints[key];
})
}
function otherTool(e) {
if (e.modName != "toolDraw") {
if (e.modName == 'cleanMap') {
remove({
modName: 'toolDraw'
});
}
}else {
if(modValue.drawType == 'Line'){
if($('#toolsBar .tools-marker').hasClass('cur')){
map3.pm.disableDraw('Marker');
$('#toolsBar .tools-marker').removeClass('cur');
}
if($('#toolsBar .tools-painting').hasClass('cur')){
map3.pm.disableDraw('Line');
$("#drawTipText").hide();
$('#toolsBar .tools-painting').removeClass('cur');
}else{
moveTip('polyline');
map3.pm.enableDraw('Line');
modValue.drawModel = 'polyline';
$('#toolsBar .tools-painting').addClass('cur');
}
}
if(modValue.drawType == 'Marker'){
if($('#toolsBar .tools-painting').hasClass('cur')){
map3.pm.disableDraw('Line');
$('#toolsBar .tools-painting').removeClass('cur');
}
if($('#toolsBar .tools-marker').hasClass('cur')){
map3.pm.disableDraw('Marker');
$("#drawTipText").hide();
$('#toolsBar .tools-marker').removeClass('cur');
}else{
moveTip('point');
map3.pm.enableDraw('Marker');
modValue.drawModel = 'point';
$('#toolsBar .tools-marker').addClass('cur');
}
}
}
}
/**
* 注册订阅
* @type {Function}
* 推送:ONEMAP.C.publisher.publish(options,'moduleName::type');
* 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange');
*/
function subscribe() {
ONEMAP.C.publisher.subscribe(change23D, 'change23D');
ONEMAP.C.publisher.subscribe(remove,'cleanMap');
ONEMAP.C.publisher.subscribe(otherTool, 'toolsd:active');
ONEMAP.C.publisher.subscribe(otherTool, 'tools:active');
ONEMAP.C.publisher.subscribe(getLastId, 'mapClick2D');
}
/**
* 取消订阅
* @type {Function}
* 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange');
*/
function unSubscribe() {
ONEMAP.C.publisher.unSubscribe(remove, 'cleanMap');
ONEMAP.C.publisher.unSubscribe(otherTool, 'toolsd:active');
ONEMAP.C.publisher.unSubscribe(otherTool, 'tools:active');
}
return ONEMAP.M.toolDraw = {
init: init,
showDraw: showDraw,
remove: remove
}
});