1029 lines
60 KiB
JavaScript
1029 lines
60 KiB
JavaScript
|
(function defineMustache(global,factory){if(typeof exports==="object"&&exports&&typeof exports.nodeName!=="string"){factory(exports)}else if(typeof define==="function"&&define.amd){define(["exports"],factory)}else{global.Mustache={};factory(global.Mustache)}})(this,function mustacheFactory(mustache){var objectToString=Object.prototype.toString;var isArray=Array.isArray||function isArrayPolyfill(object){return objectToString.call(object)==="[object Array]"};function isFunction(object){return typeof object==="function"}function typeStr(obj){return isArray(obj)?"array":typeof obj}function escapeRegExp(string){return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function hasProperty(obj,propName){return obj!=null&&typeof obj==="object"&&propName in obj}var regExpTest=RegExp.prototype.test;function testRegExp(re,string){return regExpTest.call(re,string)}var nonSpaceRe=/\S/;function isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function escapeHtml(string){return String(string).replace(/[&<>"'`=\/]/g,function fromEntityMap(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tagsToCompile){if(typeof tagsToCompile==="string")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw new Error("Invalid tags: "+tagsToCompile);openingTagRe=new RegExp(escapeRegExp(tagsToCompile[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i<valueLength;++i){chr=value.charAt(i);if(isWhitespace(chr)){spaces.push(tokens.length)}else{nonSpace=true}tokens.push(["text",chr,start,start+1]);start+=1;if(chr==="\n")stripSpace()}}if(!scanner.scan(openingTagRe))break;hasTag=true;type=scanner.scan(tagRe)||"name";scanner.scan(whiteRe);if(type==="="){value=scanner.scanUntil(equalsRe);scanner.scan(equalsRe);scanner.scanUntil(closingTagRe)}else if(type==="{"){value=scanner.scanUntil(closingCurlyRe);scanner.scan(curlyRe);scanner.scanUntil(closingTagRe);type="&"}else{value=scanner.scanUntil(closingTagRe)}if(!scanner.scan(closingTagRe))throw new Error("Unclosed tag at "+scanner.pos);token=[type,value,start,scanner.pos];tokens.push(token);if(type==="#"||type==="^"){sections.push(token)}else if(type==="/"){openSection=sections.pop();if(!openSection)throw new Error('Unopened section "'+value+'" at '+start);if(openSection[1]!==value)throw new Error('Unclosed section "'+openSection[1]+'" at '+start)}else if(type==="name"||type==="{"||type==="&"){nonSpace=true}else if(type==="="){compileTags(value)}}openSection=sections.pop();if(openSection)throw new Error('Unclosed section "'+openSection[1]+'" at '+scanner.pos);return nestTokens(squashTokens(tokens))}function squashTokens(tokens){var squashedTokens=[];var token,lastToken;for(var i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];if(token){if(token[0]==="text"&&lastToken&&lastToken[0]==="text"){lastToken[1]+=token[1];lastToken[3]=token[3]}else{squashedTokens.push(token);lastToken=token}}}return squashedTokens}function nestTokens(tokens){var nestedTokens=[];var collector=nestedTokens;var sections=[];var token,section;for(var i=0,numTokens=tokens.length;i<numTokens;++i){token=tokens[i];switch(token[0]){case"#":case"^":collector.push(token);sections.push(token);collector=token[4]=[];break;case"/":sectio
|
||
|
|
||
|
// Underscore.js 1.8.3
|
||
|
// http://underscorejs.org
|
||
|
// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
||
|
// Underscore may be freely distributed under the MIT license.
|
||
|
(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=b(e,i,4);var o=!k(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=x(r,e);for(var u=O(t),i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t,r){return function(e,u,i){var o=0,a=O(e);if("number"==typeof i)n>0?o=i>=0?i:Math.max(i+a,o):a=i>=0?Math.min(i+1,a):i+a+1;else if(r&&i&&a)return i=r(e,u),e[i]===u?i:-1;if(u!==u)return i=t(l.call(e,o,a),m.isNaN),i>=0?i+o:-1;for(i=n>0?o:a-1;i>=0&&a>i;i+=n)if(e[i]===u)return i;return-1}}function e(n,t){var r=I.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||a,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=I[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var u=this,i=u._,o=Array.prototype,a=Object.prototype,c=Function.prototype,f=o.push,l=o.slice,s=a.toString,p=a.hasOwnProperty,h=Array.isArray,v=Object.keys,g=c.bind,y=Object.create,d=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):u._=m,m.VERSION="1.8.3";var b=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},x=function(n,t,r){return null==n?m.identity:m.isFunction(n)?b(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return x(n,t,1/0)};var _=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var f=o[c];t&&r[f]!==void 0||(r[f]=i[f])}return r}},j=function(n){if(!m.isObject(n))return{};if(y)return y(n);d.prototype=n;var t=new d;return d.prototype=null,t},w=function(n){return function(t){return null==t?void 0:t[n]}},A=Math.pow(2,53)-1,O=w("length"),k=function(n){var t=O(n);return"number"==typeof t&&t>=0&&A>=t};m.each=m.forEach=function(n,t,r){t=b(t,r);var e,u;if(k(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=k(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=x(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(x(t)),r)},m.every=m.all=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=x(t,r);for(var e=!k(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r,e){return k(n)||(n=m.values(n)),("number"!=typeof r||e)&&(r=0),m.indexOf(n,t,r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=k(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=x(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&
|
||
|
//# sourceMappingURL=underscore-min.map
|
||
|
var pgsql_tmpl;
|
||
|
var featureGroup = new Array();
|
||
|
var bounds;
|
||
|
var layerSelector = new Array();
|
||
|
var overlays = new Array();
|
||
|
var mymap;
|
||
|
var currentBaseMap = new Array();
|
||
|
var marker_content_tmpl;
|
||
|
var popupContentId = new Array();
|
||
|
var tmpl = {};
|
||
|
var db = {};
|
||
|
var currentIndex = -1;
|
||
|
var drawingGroup;
|
||
|
var editMode = false;
|
||
|
var layername;
|
||
|
var myupload;
|
||
|
|
||
|
jQuery(document).ready(function () {
|
||
|
|
||
|
|
||
|
|
||
|
drawingGroup = new L.FeatureGroup();
|
||
|
|
||
|
var drawControl = new L.Control.Draw({
|
||
|
edit: {
|
||
|
featureGroup: drawingGroup
|
||
|
}
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
tmpl.activeLayer = document.getElementById("active-layers-tmpl").innerHTML;
|
||
|
Mustache.parse(tmpl.activeLayer);
|
||
|
|
||
|
mymap = L.map('mapid').setView([51.505, -0.09], 13);
|
||
|
|
||
|
drawControl.addTo(mymap);
|
||
|
drawingGroup.addTo(mymap);
|
||
|
|
||
|
L.control.layers(baseLayers["mymap"], null).addTo(mymap);
|
||
|
drawing_event();
|
||
|
|
||
|
$.each(baseLayers["mymap"], function (layer, value) {
|
||
|
layername = layer;
|
||
|
})
|
||
|
|
||
|
|
||
|
currentBaseMap = L.tileLayer(baseLayers['mymap'][layername]._url, {
|
||
|
maxZoom: 18,
|
||
|
attribution: baseLayers['mymap'][layername].options.attribution,
|
||
|
id: baseLayers['mymap'][layername].options.id
|
||
|
}).addTo(mymap);
|
||
|
|
||
|
L.Icon.Default.imagePath = baseURL + "/assets/plugins/leaflet/images";
|
||
|
L.AwesomeMarkers.Icon.prototype.options.prefix = 'fa';
|
||
|
|
||
|
jQuery('.control-sidebar').on('click', '.save-settings', function (e) {
|
||
|
e.preventDefault();
|
||
|
var $self = jQuery(this);
|
||
|
if (jQuery('#style_settings_form').validate().form()) {
|
||
|
// $self.button("loading");
|
||
|
saveMapData('style', function (data) {
|
||
|
//$self.button("reset");
|
||
|
showMsg("success", "Style saved successfully.");
|
||
|
});
|
||
|
}
|
||
|
})
|
||
|
jQuery('#download-your-style').click(function (e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
// $self.button("loading");
|
||
|
saveMapData('style', function (data) {
|
||
|
//$self.button("reset");
|
||
|
//showMsg("success", "Style saved successfully.");
|
||
|
jQuery('#download-modal').modal("show");
|
||
|
});
|
||
|
|
||
|
})
|
||
|
|
||
|
|
||
|
jQuery('.close-right-sidebar').click(function () {
|
||
|
|
||
|
if (jQuery('.sidebar_hide').hasClass("hide")) {
|
||
|
jQuery('.sidebar_hide').toggleClass("hide");
|
||
|
jQuery('.control-sidebar').toggleClass('control-sidebar-open');
|
||
|
}
|
||
|
|
||
|
})
|
||
|
|
||
|
jQuery('#map-sidebar-container').on("click", '.sidebar-close-btn', function () {
|
||
|
jQuery('#style-edit-layers-container').removeClass("open");
|
||
|
});
|
||
|
|
||
|
jQuery('#active-layers-container').on("click", '.delete-at-layer', function () {
|
||
|
var $self = jQuery(this);
|
||
|
swal({
|
||
|
title: "Are you sure?",
|
||
|
text: "This will remove layer from current map.",
|
||
|
type: "warning",
|
||
|
showCancelButton: true,
|
||
|
confirmButtonColor: "#DD6B55",
|
||
|
confirmButtonText: "Yes, delete it!",
|
||
|
cancelButtonText: "No, cancel plx!",
|
||
|
closeOnConfirm: true,
|
||
|
closeOnCancel: true
|
||
|
},
|
||
|
function (isConfirm) {
|
||
|
if (isConfirm) {
|
||
|
var unique_id = $self.parents("ul:first").attr("data-id");
|
||
|
deleteLayer(unique_id);
|
||
|
}
|
||
|
});
|
||
|
})
|
||
|
|
||
|
jQuery('#active-layers-container').on("click", '.edit-at-layer', function () {
|
||
|
|
||
|
var $self = jQuery(this);
|
||
|
var unique_id = $self.parents("ul:first").attr("data-id");
|
||
|
editATLayer(unique_id);
|
||
|
})
|
||
|
|
||
|
|
||
|
jQuery('.control-sidebar').on('click', '.markers-images', function () {
|
||
|
|
||
|
var href = jQuery(this).find("img").attr("src");
|
||
|
|
||
|
replaceIcon(href);
|
||
|
})
|
||
|
|
||
|
|
||
|
initLayer();
|
||
|
|
||
|
}).ajaxStop(function () {
|
||
|
//ajaxLoadSucess();a
|
||
|
ajaxLoadSucess();
|
||
|
|
||
|
});
|
||
|
|
||
|
function ajaxLoadSucess() {
|
||
|
jQuery('#main-loader').addClass("hide");
|
||
|
}
|
||
|
|
||
|
|
||
|
function deleteLayer(id) {
|
||
|
var index = getLayersIndex(id);
|
||
|
if (selectedLayers[index].type == 3) {
|
||
|
drawingGroup.removeLayer(selectedLayers[index].layer);
|
||
|
}
|
||
|
jQuery('#at-' + id).remove();
|
||
|
featureGroup[selectedLayers[index]['unique_id']][selectedLayers[index]['name']].clearLayers();
|
||
|
// layerSelector.removeLayer(featureGroup[selectedLayers[index]['unique_id']][selectedLayers[index]['name']]);
|
||
|
selectedLayers.splice(index, 1);
|
||
|
}
|
||
|
|
||
|
function editATLayer(id) {
|
||
|
|
||
|
var index = getLayersIndex(id);
|
||
|
//var id = jQuery(this).val();
|
||
|
currentIndex = index;
|
||
|
|
||
|
if (selectedLayers[index]['type'] == 1 || selectedLayers[index]['type'] == 4) {
|
||
|
|
||
|
// var geoserver_tmpl = document.getElementById("geoserver-modal-tmpl").innerHTML;
|
||
|
// Mustache.parse(geoserver_tmpl);
|
||
|
// jQuery('#geoserver_layer_form').html(Mustache.render(geoserver_tmpl));
|
||
|
// jQuery('#geoserver-layer-modal').modal("show");
|
||
|
//
|
||
|
// jQuery('#geoserver_layer_name').val(selectedLayers[index]['name']);
|
||
|
// jQuery('#geoserver_unique_id').val(selectedLayers[index]['unique_id']);
|
||
|
//
|
||
|
// validateForm(jQuery('#geoserver_layer_form'));
|
||
|
//
|
||
|
// sqlFormChange = false;
|
||
|
|
||
|
layerDialog(selectedLayers[index]);
|
||
|
|
||
|
} else if (selectedLayers[index]['type'] == 2) {
|
||
|
|
||
|
// var sql_tmpl = document.getElementById("sql-layer-modal-tmpl").innerHTML;
|
||
|
// Mustache.parse(sql_tmpl);
|
||
|
// jQuery('#sql_layer_form').html(Mustache.render(sql_tmpl, {ds: ds}));
|
||
|
// jQuery('#sql-layer-modal').modal("show");
|
||
|
//
|
||
|
//
|
||
|
// jQuery('#query_box').val(selectedLayers[index]['query']);
|
||
|
//
|
||
|
// jQuery('#query_box').val(selectedLayers[index]['query']);
|
||
|
// jQuery('#sql_layer_name').val(selectedLayers[index]['name']);
|
||
|
// jQuery('#sql_datasource').val(selectedLayers[index]['connection_id']);
|
||
|
// jQuery('#sql_unique_id').val(selectedLayers[index]['unique_id']);
|
||
|
//
|
||
|
// jQuery('#sql_datasource').trigger("change");
|
||
|
// validateForm(jQuery('#sql_layer_form'));
|
||
|
//
|
||
|
// // jQuery('#sql-mode-switch').bootstrapSwitch('state', selectedLayers[index]['sql_mode'], false);
|
||
|
//
|
||
|
// sqlFormChange = false;
|
||
|
// SQLModeModal(selectedLayers[index]['sqlMode']);
|
||
|
layerDialog(selectedLayers[index]);
|
||
|
} else if (selectedLayers[index]['type'] == 3) {
|
||
|
layerDialog(selectedLayers[index]);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
function editStyleLayer(id) {
|
||
|
|
||
|
|
||
|
var index = getLayersIndex(id);
|
||
|
currentIndex = index;
|
||
|
var $form = jQuery('#style_settings_form');
|
||
|
|
||
|
if (selectedLayers[index]['type'] == 1) {
|
||
|
var geoserver_tmpl = document.getElementById("geoserver-style-modal-tmpl").innerHTML;
|
||
|
Mustache.parse(geoserver_tmpl);
|
||
|
$form.html(Mustache.render(geoserver_tmpl));
|
||
|
jQuery('#style-settings-modal').modal("show");
|
||
|
jQuery('#style-settings-modal .btn.btn-success').addClass("hide");
|
||
|
|
||
|
} else if (selectedLayers[index]['type'] == 2) {
|
||
|
|
||
|
var rs_tmpl = document.getElementById('sql-layer-style-modal-tmpl').innerHTML;
|
||
|
Mustache.parse(rs_tmpl);
|
||
|
jQuery('#map-sidebar-container').html(Mustache.render(rs_tmpl, {t: selectedLayers[index]}));
|
||
|
jQuery('.control-sidebar').toggleClass('control-sidebar-open');
|
||
|
|
||
|
|
||
|
jQuery('#layer_polygon_fill_color,#layer_polygon_color').colorpicker({
|
||
|
theme: 'bootstrap',
|
||
|
}).on('changeColor', function (ev) {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
jQuery('#layer-polygon-styling input').change(function () {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
|
||
|
jQuery('#layer-marker-styling select').change(function () {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
jQuery('.sidebar_hide').toggleClass("hide");
|
||
|
return;
|
||
|
|
||
|
var sql_tmpl = document.getElementById("sql-layer-style-modal-tmpl").innerHTML;
|
||
|
Mustache.parse(sql_tmpl);
|
||
|
$form.html(Mustache.render(sql_tmpl, {ds: ds}));
|
||
|
jQuery('#style-settings-modal').modal("show");
|
||
|
|
||
|
$form.find('[name="unique_id"]').val(selectedLayers[index]['unique_id']);
|
||
|
|
||
|
validateForm(jQuery('#style_settings_form'));
|
||
|
jQuery('#style-settings-modal .btn.btn-success').removeClass("hide");
|
||
|
} else if (selectedLayers[index]['type'] == 3) {
|
||
|
|
||
|
jQuery('#layer_polygon_fill_color,#layer_polygon_color').colorpicker({
|
||
|
theme: 'bootstrap',
|
||
|
}).on('changeColor', function (ev) {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
jQuery('#layer-polygon-styling input').change(function () {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function drawing_event() {
|
||
|
|
||
|
var handleDrawEvent = function () {
|
||
|
|
||
|
mymap.on('draw:drawstart', function (e) {
|
||
|
draw_editStart(e);
|
||
|
});
|
||
|
mymap.on('draw:deletestart', function (e) {
|
||
|
draw_editStart(e);
|
||
|
});
|
||
|
|
||
|
mymap.on('draw:editstop', function (e) {
|
||
|
draw_editStop(e)
|
||
|
});
|
||
|
mymap.on('draw:drawstop', function (e) {
|
||
|
draw_editStop(e)
|
||
|
});
|
||
|
mymap.on('draw:deletestop', function (e) {
|
||
|
draw_editStop(e)
|
||
|
});
|
||
|
|
||
|
|
||
|
mymap.on('moveend', function (e) {
|
||
|
updateMapCenter();
|
||
|
});
|
||
|
|
||
|
mymap.on('draw:created', function (e) {
|
||
|
|
||
|
var layerPro = new Object;
|
||
|
layerPro.lt = e.layerType;
|
||
|
|
||
|
var layer = e.layer;
|
||
|
|
||
|
drawingGroup.addLayer(layer);
|
||
|
|
||
|
/* Shape Style */
|
||
|
style = {};
|
||
|
var layerType = "";
|
||
|
if (layer instanceof L.Marker) {
|
||
|
|
||
|
style.marker = new Object;
|
||
|
style.marker.icon = '';
|
||
|
style.marker.color = '';
|
||
|
style.marker.image = baseURL + "/assets/plugins/leaflet/images/marker-icon.png";
|
||
|
layerPro.marker = true;
|
||
|
layerPro.polygon = false;
|
||
|
|
||
|
} else if (layer instanceof L.MultiPolygon ||
|
||
|
layer instanceof L.Polyline ||
|
||
|
layer instanceof L.Rectangle ||
|
||
|
layer instanceof L.Circle) {
|
||
|
|
||
|
style.polygon = new Object;
|
||
|
style.polygon.color = '#ff0000';
|
||
|
style.polygon.opacity = 0.5;
|
||
|
style.polygon.weight = 5;
|
||
|
style.polygon.fillColor = '#ff0000';
|
||
|
style.polygon.fillOpacity = 0.5;
|
||
|
|
||
|
layer.setStyle(style.polygon);
|
||
|
layerPro.marker = false;
|
||
|
layerPro.polygon = true;
|
||
|
}
|
||
|
|
||
|
layerPro.layer = layer;
|
||
|
layerPro.style = style;
|
||
|
layerPro.type = 3;
|
||
|
layerPro.name = layerPro.lt;
|
||
|
layerPro.location = "";
|
||
|
layerPro.pc = "";
|
||
|
layerPro.unique_id = uniqId('cl'); //custom layers
|
||
|
selectedLayers.push(layerPro);
|
||
|
layerDialog(layerPro);
|
||
|
|
||
|
renderLayer(layerPro);
|
||
|
});
|
||
|
|
||
|
mymap.on('draw:editstart', function (e) {
|
||
|
// setTimeout(function () {
|
||
|
// var layers = drawingGroup.getLayers();
|
||
|
// $.each(layers, function (index, layer) {
|
||
|
// index = getLayerIndex(layer);
|
||
|
// if (layer instanceof L.Marker) {
|
||
|
// if (mapLayers[index].style.markerColor) {
|
||
|
// layer.setIcon(L.AwesomeMarkers.icon(mapLayers[index].style));
|
||
|
// }
|
||
|
// } else if (layer instanceof L.Polyline ||
|
||
|
// layer instanceof L.Polygon ||
|
||
|
// layer instanceof L.Rectangle ||
|
||
|
// layer instanceof L.Circle) {
|
||
|
// layer.setStyle(mapLayers[index].style);
|
||
|
// }
|
||
|
// });
|
||
|
// }, 50);
|
||
|
|
||
|
draw_editStart();
|
||
|
editMode = true;
|
||
|
});
|
||
|
|
||
|
mymap.on('draw:editstop', function (e) {
|
||
|
// setTimeout(function () {
|
||
|
// var layers = drawingGroup.getLayers();
|
||
|
// $.each(layers, function (index, layer) {
|
||
|
// index = getLayerIndex(layer);
|
||
|
// if (layer instanceof L.Marker) {
|
||
|
// if (selectedLayers[index].style.marker) {
|
||
|
// layer.setIcon(L.AwesomeMarkers.icon(selectedLayers[index].style.marker));
|
||
|
// }
|
||
|
// } else if (layer instanceof L.Polyline ||
|
||
|
// layer instanceof L.Polygon ||
|
||
|
// layer instanceof L.Rectangle ||
|
||
|
// layer instanceof L.Circle) {
|
||
|
// layer.setStyle(selectedLayers[index].style.polygon);
|
||
|
// }
|
||
|
// });
|
||
|
// }, 50);
|
||
|
|
||
|
editMode = false;
|
||
|
draw_editStop(e);
|
||
|
});
|
||
|
|
||
|
mymap.on('draw:deleted', function (e) {
|
||
|
var layers = e.layers;
|
||
|
layers.eachLayer(function (layer) {
|
||
|
if (layer instanceof L.MultiPolygon ||
|
||
|
layer instanceof L.Polyline ||
|
||
|
layer instanceof L.Rectangle ||
|
||
|
layer instanceof L.Circle ||
|
||
|
layer instanceof L.Marker) {
|
||
|
deleteLayer(layer.feature.properties.unique_id);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
handleDrawEvent();
|
||
|
|
||
|
$('.leaflet-draw.leaflet-control').hide();
|
||
|
|
||
|
$('#mapid > #data').show();
|
||
|
|
||
|
$('#draw-polyline,#draw-polygon,#draw-rectangle,#draw-marker, #edit-edit,#edit-remove, #draw-circle').click(function (e) {
|
||
|
if ($(this).attr('href') == "#") {
|
||
|
e.preventDefault();
|
||
|
|
||
|
var id = $(this).attr('id');
|
||
|
$('.leaflet-draw-' + id)[0].click();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function draw_editStart(e) {
|
||
|
var idx = 0;
|
||
|
|
||
|
setTimeout(function () {
|
||
|
info = $('.leaflet-draw-tooltip').text().replace('Click cancel to undo changes.', '');
|
||
|
$('#control-tip-info').html(info);
|
||
|
|
||
|
$('#control-tip-buttons').text('');
|
||
|
$('.leaflet-draw-actions li').each(function (index) {
|
||
|
var obj = $(this);
|
||
|
if (obj.parent().css('display') == 'block') {
|
||
|
var value = obj.text();
|
||
|
var icon = '';
|
||
|
|
||
|
if (/cancel/i.test(value)) {
|
||
|
icon = 'remove';
|
||
|
} else if (/save/i.test(value)) {
|
||
|
icon = 'save';
|
||
|
} else {
|
||
|
icon = 'trash';
|
||
|
}
|
||
|
|
||
|
Actions = '<a href="#" onClick="return tipButtonsclick(' + (idx++) + ');" class="button-top drawing-icon pin-right unround button quiet icon close pad1 inline"><i class="fa fa-' + icon + '"></i> ' + obj.text() + '</a>';
|
||
|
$('#control-tip-buttons').prepend(Actions);
|
||
|
}
|
||
|
});
|
||
|
}, 100);
|
||
|
}
|
||
|
function draw_editStop(e) {
|
||
|
$('#control-tip-info').html('Select the Shape to draw on Map or <a href="#" class="btn btn-primary btn-xs" onClick="$(\'#data-importer\').click(); return false;" style="color:white;">click here to import</a> gpx, json or kml.');
|
||
|
$('#control-tip-buttons').text('');
|
||
|
}
|
||
|
function updateMapCenter() {
|
||
|
canter = mymap.getCenter();
|
||
|
$('input[name=latitude]').val(canter.lat);
|
||
|
$('input[name=longitude]').val(canter.lng);
|
||
|
|
||
|
$('#mapcenter').val('[' + canter.lat + ',' + canter.lng + ']');
|
||
|
}
|
||
|
|
||
|
|
||
|
function layerDialog(t) {
|
||
|
|
||
|
var cs_html = document.getElementById('cl-style-modal-tmpl').innerHTML;
|
||
|
Mustache.parse(cs_html);
|
||
|
|
||
|
jQuery('#map-sidebar-container').html(Mustache.render(cs_html, {t: t, type: layerType[t.type]}));
|
||
|
sidebar_toggle('#style-edit-layers-container');
|
||
|
if (t.lt == "polyline") {
|
||
|
jQuery('#fill-color-container').remove();
|
||
|
}
|
||
|
|
||
|
if (t.lt == "marker") {
|
||
|
myupload = new Dropzone("div#upload-file", {
|
||
|
url: baseURL + "/developer/style/upload/marker",
|
||
|
init: function () {
|
||
|
this.on("success", function (file, responseText) {
|
||
|
var h = '<a href="javascript:void(0)" class="markers-images"><img src="' + baseURL + "uploads/markers/" + responseText.filename + '" height="32"/></a>';
|
||
|
jQuery('#image_preview_marker').append(h);
|
||
|
jQuery('.dz-preview').remove();
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
myupload.on("sending", function (file, xhr, formData) {
|
||
|
// Show the total progress bar when upload starts
|
||
|
|
||
|
formData.append('_token', $('input[name="_token"]').val());
|
||
|
|
||
|
});
|
||
|
}
|
||
|
jQuery('#upload-marker').click(function () {
|
||
|
|
||
|
})
|
||
|
|
||
|
if (!jQuery('.sidebar_hide').hasClass("hide")) {
|
||
|
jQuery('.sidebar_hide').toggleClass("hide");
|
||
|
jQuery('.control-sidebar').toggleClass('control-sidebar-open');
|
||
|
}
|
||
|
|
||
|
|
||
|
if (t.type == 2 || t.type == 3) {
|
||
|
|
||
|
if (t.style.type == "nr" || t.style.type == "g") {
|
||
|
|
||
|
var layers = featureGroup[t.unique_id][t.name].getLayers();
|
||
|
var featuredata = new Array();
|
||
|
var counter = 0;
|
||
|
$.each(layers, function (key, val) {
|
||
|
val.eachLayer(function (layer) {
|
||
|
featuredata[counter++] = layer.feature.properties;
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
if (t.style.type == "nr") {
|
||
|
|
||
|
var featuremax = _.max(featuredata, function (o) {
|
||
|
return o[t.style.field];
|
||
|
});
|
||
|
|
||
|
var numericRange = document.getElementById(t.style.type + "-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
jQuery('#style_column_name').val(t.style.field);
|
||
|
jQuery('#style_data_type').val(t.style.type);
|
||
|
|
||
|
jQuery('#attribute-input-field').html(Mustache.render(numericRange, {max: featuremax[t.style.field]}));
|
||
|
var tr = 0;
|
||
|
$.each(t.style.custom, function (tr, val) {
|
||
|
var numericRange = document.getElementById(t.style.type + "-column-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
var html = Mustache.render(numericRange, {});
|
||
|
|
||
|
jQuery('#attribute-input-field table tbody').append(html);
|
||
|
var $last = jQuery('#attribute-input-field table tbody tr:last');
|
||
|
$last.find("input").val(val.val);
|
||
|
$last.find('select[data-name="markerColor"]').val(val.style.markerColor);
|
||
|
$last.find('select[data-name="icon"]').val(val.style.icon);
|
||
|
})
|
||
|
|
||
|
} else if (t.style.type == "g") {
|
||
|
|
||
|
var featuremax = _.groupBy(featuredata, function (o) {
|
||
|
return parseFloat(o[t.style.field]);
|
||
|
});
|
||
|
|
||
|
var numericRange = document.getElementById(t.style.type + "-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
jQuery('#style_column_name').val(t.style.field);
|
||
|
jQuery('#style_data_type').val(t.style.type);
|
||
|
|
||
|
jQuery('#attribute-input-field').html(Mustache.render(numericRange, {max: featuremax[t.style.field]}));
|
||
|
var tr = 0;
|
||
|
$.each(t.style.custom, function (tr, val) {
|
||
|
var numericRange = document.getElementById(t.style.type + "-column-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
var html = Mustache.render(numericRange, {});
|
||
|
|
||
|
jQuery('#attribute-input-field table tbody').append(html);
|
||
|
var $last = jQuery('#attribute-input-field table tbody tr:last');
|
||
|
$last.find("input").val(val.val);
|
||
|
$last.find('select[data-name="markerColor"]').val(val.style.markerColor);
|
||
|
$last.find('select[data-name="icon"]').val(val.style.icon);
|
||
|
})
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
jQuery('#layer_polygon_fill_color,#layer_polygon_color').colorpicker({
|
||
|
theme: 'bootstrap',
|
||
|
}).on('changeColor', function (ev) {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
jQuery('#layer-polygon-styling input,#layer-polygon-styling select').change(function () {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
|
||
|
jQuery('#layer-marker-styling .default-marker-style select').change(function () {
|
||
|
applyLiveStyle();
|
||
|
});
|
||
|
|
||
|
jQuery('#layer-marker-styling').on("click", ".numeric-range", function () {
|
||
|
var $currentTr = jQuery(this).parents("tr:first");
|
||
|
var cloneTr = $currentTr.clone();
|
||
|
cloneTr.find('input').val('');
|
||
|
$currentTr.after(cloneTr);
|
||
|
})
|
||
|
|
||
|
jQuery('#layer-marker-styling .custom-marker-style #style_data_type, #layer-marker-styling .custom-marker-style #style_column_name').change(function () {
|
||
|
|
||
|
var columnName = jQuery('#style_column_name').val();
|
||
|
var data_type = jQuery('#style_data_type').val();
|
||
|
|
||
|
if (columnName != "" && data_type != "") {
|
||
|
|
||
|
jQuery('#attribute-input-field').html('');
|
||
|
|
||
|
var my_unique_id = jQuery('#map-sidebar-container [name="my_unique_id"]').val();
|
||
|
var index = getIndex(selectedLayers, 'unique_id', my_unique_id);
|
||
|
var layers = featureGroup[selectedLayers[index].unique_id][selectedLayers[index].name].getLayers();
|
||
|
var featuredata = new Array();
|
||
|
var counter = 0;
|
||
|
$.each(layers, function (key, val) {
|
||
|
val.eachLayer(function (layer) {
|
||
|
featuredata[counter++] = layer.feature.properties;
|
||
|
});
|
||
|
});
|
||
|
|
||
|
if (data_type == "nr") {
|
||
|
|
||
|
var featuremax = _.max(featuredata, function (o) {
|
||
|
return parseFloat(o[columnName]);
|
||
|
});
|
||
|
|
||
|
var numericRange = document.getElementById(data_type + "-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
|
||
|
jQuery('#attribute-input-field').html(Mustache.render(numericRange, {max: featuremax[columnName]}));
|
||
|
|
||
|
if (jQuery('#attribute-input-field table tboday tr').length == 0) {
|
||
|
var numericRange = document.getElementById("nr-column-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
var html = Mustache.render(numericRange, {});
|
||
|
|
||
|
jQuery('#attribute-input-field table tbody').append(html);
|
||
|
}
|
||
|
|
||
|
} else {
|
||
|
|
||
|
var featuremax = _.groupBy(featuredata, function (o) {
|
||
|
return o[columnName];
|
||
|
});
|
||
|
|
||
|
var numericRange = document.getElementById(data_type + "-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
|
||
|
jQuery('#attribute-input-field').html(Mustache.render(numericRange, {max: featuremax[columnName]}));
|
||
|
|
||
|
$.each(featuremax, function (tr, val) {
|
||
|
|
||
|
var numericRange = document.getElementById("g-column-style-selection").innerHTML;
|
||
|
Mustache.parse(numericRange);
|
||
|
var html = Mustache.render(numericRange, {attr: tr});
|
||
|
|
||
|
jQuery('#attribute-input-field table tbody').append(html);
|
||
|
// var $last = jQuery('#attribute-input-field table tbody tr:last');
|
||
|
// $last.find("input").val(val.range);
|
||
|
// $last.find('select[data-name="markerColor"]').val(val.style.markerColor);
|
||
|
// $last.find('select[data-name="icon"]').val(val.style.icon);
|
||
|
})
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var customStyle = new Array();
|
||
|
var s = 0;
|
||
|
jQuery('#attribute-input-field').on('change', 'table input, table select', function () {
|
||
|
|
||
|
var my_unique_id = jQuery('#map-sidebar-container [name="my_unique_id"]').val();
|
||
|
var index = getIndex(selectedLayers, 'unique_id', my_unique_id);
|
||
|
var layers = featureGroup[selectedLayers[index].unique_id][selectedLayers[index].name].getLayers();
|
||
|
var columnName = jQuery('#style_column_name').val();
|
||
|
var data_type = jQuery('#style_data_type').val();
|
||
|
customStyle = new Array();
|
||
|
s = 0;
|
||
|
jQuery('#attribute-numeric-table tbody tr').each(function () {
|
||
|
|
||
|
var $self = jQuery(this);
|
||
|
var range = $self.find('input:text').val();
|
||
|
|
||
|
var marker = {};
|
||
|
$self.find("select").each(function () {
|
||
|
marker[jQuery(this).attr("data-name")] = jQuery(this).val();
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
customStyle[s] = new Object;
|
||
|
customStyle[s].val = range;
|
||
|
customStyle[s].style = marker;
|
||
|
s++;
|
||
|
|
||
|
marker = getMarkerStyle(marker);
|
||
|
|
||
|
$.each(layers, function (key, val) {
|
||
|
val.eachLayer(function (layer) {
|
||
|
|
||
|
if (data_type == "nr") {
|
||
|
|
||
|
if (between(layer.feature.properties[columnName], range)) {
|
||
|
layer.setIcon(L.AwesomeMarkers.icon(marker));
|
||
|
}
|
||
|
} else if (data_type == "g") {
|
||
|
if (layer.feature.properties[columnName] == range) {
|
||
|
layer.setIcon(L.AwesomeMarkers.icon(marker));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
});
|
||
|
});
|
||
|
})
|
||
|
|
||
|
if (typeof selectedLayers[index].style.custom == "undefined") {
|
||
|
selectedLayers[index].style.custom = new Object;
|
||
|
}
|
||
|
|
||
|
selectedLayers[index].style.custom = customStyle;
|
||
|
|
||
|
selectedLayers[index].style.type = data_type;
|
||
|
selectedLayers[index].style.field = columnName;
|
||
|
})
|
||
|
|
||
|
|
||
|
|
||
|
if (t.style.marker && typeof t.style.marker != "undefined") {
|
||
|
jQuery('#layer-marker-styling select[name="marker_color"]').val(t.style.marker.markerColor);
|
||
|
jQuery('#layer-marker-styling select[name="marker_icon"]').val(t.style.marker.icon);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
jQuery('#cs-layer-info input').change(function () {
|
||
|
var $self = jQuery(this);
|
||
|
|
||
|
var my_unique_id = jQuery('#map-sidebar-container [name="my_unique_id"]').val();
|
||
|
var index = getIndex(selectedLayers, 'unique_id', my_unique_id);
|
||
|
selectedLayers[index][$self.attr("name")] = $self.val();
|
||
|
jQuery('#at-' + selectedLayers[index]['unique_id'] + " span.at-text").html(selectedLayers[index].name);
|
||
|
});
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
function tipButtonsclick(index) {
|
||
|
|
||
|
var action = undefined;
|
||
|
$('.leaflet-draw-actions').each(function (index) {
|
||
|
if ($(this).css('display') == 'block') {
|
||
|
action = $(this);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (action) {
|
||
|
action.find('a')[index].click();
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function getDetailsByType(obj, key, val, key1, value1) {
|
||
|
var objects = [];
|
||
|
var len = obj.length;
|
||
|
for (i = 0; i < len; i++) {
|
||
|
if (obj[i][key] == val && obj[i][key1] == value1) {
|
||
|
objects.push(obj[i]);
|
||
|
}
|
||
|
}
|
||
|
return objects;
|
||
|
}
|
||
|
function renderLayer(t) {
|
||
|
|
||
|
if (typeof page != "undefined" && page == "manage") {
|
||
|
|
||
|
//jQuery('#active-layers-container').append(Mustache.render(tmpl.activeLayer, t));
|
||
|
jQuery('#active-layers-container').append(Mustache.render(tmpl.activeLayer, {t: t, type: layerType[t.type]}));
|
||
|
|
||
|
}
|
||
|
|
||
|
if (typeof featureGroup[t.unique_id] == "undefined") {
|
||
|
featureGroup[t.unique_id] = new Array();
|
||
|
}
|
||
|
|
||
|
featureGroup[t.unique_id][t.name] = new L.FeatureGroup();
|
||
|
|
||
|
|
||
|
featureGroup[t.unique_id][t.name].addTo(mymap);
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
function applyLiveStyle(type) {
|
||
|
|
||
|
var my_unique_id = jQuery('#map-sidebar-container [name="my_unique_id"]').val();
|
||
|
var index = getIndex(selectedLayers, 'unique_id', my_unique_id);
|
||
|
|
||
|
var style = {};
|
||
|
jQuery('#layer-polygon-styling input, #layer-polygon-styling select').each(function () {
|
||
|
var $self = jQuery(this);
|
||
|
if ($self.val() == "dashed") {
|
||
|
style["dashArray"] = "20,15";
|
||
|
} else {
|
||
|
style[$self.attr("name")] = $self.val();
|
||
|
}
|
||
|
console.log(style);
|
||
|
|
||
|
})
|
||
|
|
||
|
var marker = {};
|
||
|
jQuery('#layer-marker-styling .default-marker-style select').each(function () {
|
||
|
var $self = jQuery(this);
|
||
|
marker[$self.attr("data-name")] = $self.val();
|
||
|
})
|
||
|
|
||
|
if (selectedLayers[index].type == 2) {
|
||
|
var layers = featureGroup[selectedLayers[index].unique_id][selectedLayers[index].name].getLayers();
|
||
|
$.each(layers, function (key, val) {
|
||
|
val.eachLayer(function (layer) {
|
||
|
|
||
|
if (layer instanceof L.Marker) {
|
||
|
layer.setIcon(L.AwesomeMarkers.icon(marker));
|
||
|
} else if (layer instanceof L.Polyline ||
|
||
|
layer instanceof L.Polygon ||
|
||
|
layer instanceof L.Rectangle ||
|
||
|
layer instanceof L.Circle) {
|
||
|
layer.setStyle(style);
|
||
|
}
|
||
|
|
||
|
});
|
||
|
});
|
||
|
} else if (selectedLayers[index].type == 3) {
|
||
|
var layer = selectedLayers[index].layer;
|
||
|
if (layer instanceof L.Marker) {
|
||
|
layer.setIcon(L.AwesomeMarkers.icon(marker));
|
||
|
} else if (layer instanceof L.Polyline ||
|
||
|
layer instanceof L.Polygon ||
|
||
|
layer instanceof L.Rectangle ||
|
||
|
layer instanceof L.Circle) {
|
||
|
layer.setStyle(style);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// .setStyle(style);
|
||
|
selectedLayers[index]['style'].polygon = style;
|
||
|
selectedLayers[index]['style'].marker = marker;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
function getIndex(obj, key, value) {
|
||
|
var len = obj.length;
|
||
|
for (i = 0; i < len; i++) {
|
||
|
if (obj[i][key] == value) {
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
function saveMapData(type, callback) {
|
||
|
|
||
|
var len = selectedLayers.length;
|
||
|
|
||
|
var jt = new Array();
|
||
|
for (i = 0; i < len; i++) {
|
||
|
|
||
|
var s = jQuery.extend(true, {}, selectedLayers[i]);
|
||
|
|
||
|
if (s.type == 3) {
|
||
|
if (s.layer instanceof L.Circle) {
|
||
|
s.radius = s.layer.getRadius();
|
||
|
}
|
||
|
s.layer = s.layer.toGeoJSON();
|
||
|
}
|
||
|
jt.push(s);
|
||
|
}
|
||
|
var t = {
|
||
|
"selectedLayers": jt
|
||
|
}
|
||
|
jQuery('#action_type').val(type);
|
||
|
var json = JSON.stringify(t);
|
||
|
|
||
|
jQuery('#layer_json').val(json);
|
||
|
var formdata = jQuery('#layer-form, #map-settings-form').serialize();
|
||
|
|
||
|
ajaxRequest('/developer/style/save', 'post', 'json', formdata, function (data) {
|
||
|
|
||
|
if (data.status == 200) {
|
||
|
jQuery('#map_id').val(data.map_id);
|
||
|
// window.location = baseURL + "/developer/map/edit/" + data.map_id;
|
||
|
//showMsg(data.action, data.msg);
|
||
|
callback(data);
|
||
|
} else {
|
||
|
showMsg("error", data.msg);
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function initLayer() {
|
||
|
|
||
|
jQuery.each(selectedLayers, function (key, value) {
|
||
|
renderLayer(value, '');
|
||
|
processFreeHand(value);
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function processFreeHand(t) {
|
||
|
|
||
|
|
||
|
// t = selectedLayers[index];
|
||
|
//
|
||
|
// if (typeof featureGroup[t.unique_id] == "undefined") {
|
||
|
// featureGroup[t.unique_id] = new Array();
|
||
|
// }
|
||
|
// featureGroup[t.unique_id][t.name] = new L.FeatureGroup();
|
||
|
//
|
||
|
// if (typeof t.settings != "undefined") {
|
||
|
// if (t.settings.active == 1) {
|
||
|
// featureGroup[t.unique_id][t.name].addTo(mymap);
|
||
|
// } else {
|
||
|
// t.settings.active = 0;
|
||
|
// }
|
||
|
// } else {
|
||
|
// featureGroup[t.unique_id][t.name].addTo(mymap);
|
||
|
// t.settings = new Object;
|
||
|
// t.settings.active = 1;
|
||
|
// }
|
||
|
|
||
|
//featureGroup[t.unique_id][t.name].addTo(mymap);
|
||
|
|
||
|
|
||
|
L.geoJson(t.layer, {
|
||
|
onEachFeature: function (feature, layer) {
|
||
|
index = getIndex(selectedLayers, 'unique_id', t.unique_id);
|
||
|
selectedLayers[index].layer = layer;
|
||
|
|
||
|
|
||
|
drawingGroup.addLayer(layer);
|
||
|
|
||
|
featureGroup[t.unique_id][t.name].addLayer(layer);
|
||
|
|
||
|
if (layer instanceof L.Marker) {
|
||
|
if (typeof selectedLayers[index].style.marker.image != "undefined") {
|
||
|
replaceIcon(selectedLayers[index].style.marker.image, index);
|
||
|
}
|
||
|
// layer.setIcon(L.AwesomeMarkers.icon(selectedLayers[index].style.marker));
|
||
|
}
|
||
|
layer.bindPopup(selectedLayers[index].pc);
|
||
|
|
||
|
// layer.on("click", function () {
|
||
|
// var index = getLayerIndex1(layer);
|
||
|
// if (layer instanceof L.Marker) {
|
||
|
// var popup = L.popup();
|
||
|
// popup.setLatLng(layer.getLatLng());
|
||
|
// popup.setContent(selectedLayers[index].pc);
|
||
|
// mymap.openPopup(popup);
|
||
|
// } else {
|
||
|
// var bounds = layer.getBounds();
|
||
|
// var popup = L.popup();
|
||
|
// popup.setLatLng(bounds.getCenter());
|
||
|
// popup.setContent(selectedLayers[index].pc);
|
||
|
// mymap.openPopup(popup);
|
||
|
// }
|
||
|
// });
|
||
|
|
||
|
},
|
||
|
style: function (feature, layer) {
|
||
|
return t.style.polygon;
|
||
|
},
|
||
|
pointToLayer: function (feature, latlng) {
|
||
|
//console.log(feature);
|
||
|
if (typeof t.radius != "undefined") {
|
||
|
return L.circle(latlng, parseInt(t.radius, 10));
|
||
|
} else {
|
||
|
return L.marker(latlng);
|
||
|
}
|
||
|
},
|
||
|
})
|
||
|
|
||
|
|
||
|
//calculateBounds();
|
||
|
}
|
||
|
function getLayersIndex(id) {
|
||
|
var len = selectedLayers.length;
|
||
|
for (i = 0; i < len; i++) {
|
||
|
if (selectedLayers[i].unique_id == id) {
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function replaceIcon(href, index) {
|
||
|
|
||
|
var myIconReplc = L.Icon.extend({
|
||
|
options: {
|
||
|
iconUrl: href,
|
||
|
iconSize: [30, 35],
|
||
|
shadowUrl: href,
|
||
|
shadowAnchor: [8, 20],
|
||
|
shadowSize: [25, 18],
|
||
|
iconAnchor: [8, 30] // horizontal puis vertical
|
||
|
}
|
||
|
});
|
||
|
|
||
|
if (typeof index != "undefined") {
|
||
|
|
||
|
} else {
|
||
|
var my_unique_id = jQuery('#map-sidebar-container [name="my_unique_id"]').val();
|
||
|
index = getIndex(selectedLayers, 'unique_id', my_unique_id);
|
||
|
}
|
||
|
|
||
|
selectedLayers[index].style.marker.image = href;
|
||
|
selectedLayers[index].style.marker.size = 32;
|
||
|
var layer = selectedLayers[index].layer;
|
||
|
layer.setIcon(new myIconReplc);
|
||
|
}
|
||
|
|
||
|
function sidebar_toggle(eleid) {
|
||
|
jQuery('.control-sidebar').removeClass('open');
|
||
|
jQuery( eleid).addClass('open');
|
||
|
}
|
||
|
//# sourceMappingURL=style-map.js.map
|