Skip to content

Instantly share code, notes, and snippets.

@ahmadwaliesipick
Created June 5, 2018 07:25
Show Gist options
  • Save ahmadwaliesipick/ea75f780003b3f9ab0b051df2fbfc481 to your computer and use it in GitHub Desktop.
Save ahmadwaliesipick/ea75f780003b3f9ab0b051df2fbfc481 to your computer and use it in GitHub Desktop.
var featuresArr = [];
var btnDelete, selectedGraphic, btnSave, alreadyLoad;
var map, editToolbar;
var lat = "";
var long = "";
var tb;
var mapZoom;
var shapeInfo = '';
var vectorLayerArr = [];
var selectedTrekInfo = {};
var selectedTrekInfoData = [];
var basemapInfoBM = '';
var pointBM = '';
var current_lat = '';
var current_lon = '';
var editOver = false;
var myGlobalEditObj = {};
var undoManager; //undo/redo
var graphicCount = 0;
var mapSourceMinZoom, mapSourceMaxZoom;
var prev_lat, prev_lon;
var MINZOOM = 1
var MAXZOOM = 22
function EditTrekInfo(data, mapSourcesData) {
//We will set mapZoom dynamically by data.mapZoom once come from db
// mapZoom = 8;
var basemapType = data.basemapType || 'topo';
var trpId = data._id;
if (data.tripZoom == undefined) {
mapZoom = 12;
}
else {
mapZoom = data.tripZoom;
}
if((localStorage.getItem("zoomSet"+trpId) != '') && (localStorage.getItem("zoomSet"+trpId) != undefined) ){
mapZoom = localStorage.getItem("zoomSet"+trpId);
//localStorage.setItem("zoomSet",'')
}
if((localStorage.getItem("lon"+trpId) != '') && (localStorage.getItem("lon"+trpId) != undefined) ){
lat = parseFloat(localStorage.getItem("lon"+trpId));
long = parseFloat(localStorage.getItem("lat"+trpId));
// localStorage.setItem("zoomSet",'')
}
localStorage.setItem("chkExistingTrek", 'Available');
for (var j = 0; j < data.features.length; j++) {
if (data.features[j].geometry.type == "point" || data.features[j].geometry.type == "Point") {
lat = data.features[j].geometry.coordinates.x || data.features[j].geometry.coordinates[0];
long = data.features[j].geometry.coordinates.y || data.features[j].geometry.coordinates[1];
} else if (data.features[j].geometry.type == "multipoint") {
lat = data.features[j].geometry.coordinates[0][0];
long = data.features[j].geometry.coordinates[0][1];
} else if (data.features[j].geometry.type == "polyline" || data.features[j].geometry.type == "LineString") {
lat = data.features[j].geometry.coordinates[0][0][0] || data.features[j].geometry.coordinates[0][0];
long = data.features[j].geometry.coordinates[0][0][1] || data.features[j].geometry.coordinates[0][1];
} else if (data.features[j].geometry.type == "polygon" || data.features[j].geometry.type == "Polygon") {
lat = data.features[j].geometry.coordinates[0][0][0];
long = data.features[j].geometry.coordinates[0][0][1];
} else if (data.features[j].geometry.type == "extent") {
lat = data.features[j].geometry.coordinates.xmin;
long = data.features[j].geometry.coordinates.ymin;
}
if (lat !== '' && long !== '') {
break;
}
}
// //----------MapSource DeepLink Start-------------
var checkMapSourceDeepLink = function(field, url) {
var href = url ? url : window.location.href;
var reg = new RegExp('[?&]' + field + '=([^&#]*)', 'i');
var string = reg.exec(href);
return string ? string[1] : null;
};
var bsTrip = checkMapSourceDeepLink('trp');
var bsMap = checkMapSourceDeepLink('m');
var bsCenter = checkMapSourceDeepLink('loc');
var bsZoom = checkMapSourceDeepLink('z');
if (bsMap !== null) {
favoriteBasemap = bsMap;
basemapInfoBM = bsMap;
} else {
// basemapInfoBM = mapInfo.basemapInfo
basemapInfoBM = basemapType;
}
// //--------------------------End--------------------
require([
"esri/map", "esri/urlUtils",
"esri/arcgis/utils",
"esri/layers/WebTiledLayer",
"esri/layers/OpenStreetMapLayer",
"esri/layers/VectorTileLayer", "esri/dijit/BasemapGallery",
"esri/toolbars/edit",
"esri/toolbars/draw",
"esri/graphic",
"esri/Color",
"esri/dijit/Search",
// undo/redo start
"esri/undoManager",
"myModules/customoperation",
"dojo/_base/connect",
// "dijit/form/Button",
// undo/redo end
"esri/geometry/Multipoint",
"esri/geometry/Point",
"esri/geometry/Polyline",
"esri/geometry/Polygon",
"esri/geometry/Extent",
"esri/geometry/webMercatorUtils",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/TextSymbol",
"esri/symbols/SimpleMarkerSymbol",
"esri/SpatialReference",
"esri/geometry/projection",
"dojo/_base/event",
"dojo/parser",
"dojo/dom", "dojo/on",
"dojo/dom-style",
"dijit/registry",
"dijit/Menu",
"esri/InfoTemplate",
"dijit/form/ToggleButton",
"dijit/form/DropDownButton",
"dijit/CheckedMenuItem",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/TitlePane",
"dojo/domReady!"
], function(
Map, urlUtils,
arcgisUtils, WebTiledLayer, OpenStreetMapLayer, VectorTileLayer, BasemapGallery, Edit, Draw, Graphic, Color, Search,
UndoManager, CustomOperation, connect, //undo/redo
Multipoint, Point, Polyline, Polygon, Extent, webMercatorUtils,
SimpleLineSymbol, SimpleFillSymbol, TextSymbol, SimpleMarkerSymbol,SpatialReference,projection,
event, parser, dom, on, domStyle, registry, Menu, InfoTemplate
) {
if (!projection.isSupported()) {
alert("client-side projection is not supported");
return;
}
// load the projection module
const projectionPromise = projection.load();
//parser.parse();
esri.config.defaults.map.zoomDuration = 100; //time in milliseconds; default is 500
esri.config.defaults.map.zoomRate = 10; //refresh rate of zoom animation; default is 25
// $('#btnSave').hide();
// $('#btnCancel').show();
$('#undo').hide();
$('#redo').hide();
$('.userDashboard__drawTripActionGroup__saveTrip').hide();
$('.userDashboard__drawTripActionGroup__clearScreen').hide();
var locationLayer = new esri.layers.GraphicsLayer();
// domStyle.set(registry.byId("mainWindow").domNode, "visibility", "visible");
// undo/redo start
undoManager = new UndoManager();
$("#undo").on("click", function() {
undoManager.undo();
graphicCount = graphicCount - 1;
editOver = true;
});
$("#redo").on("click", function() {
undoManager.redo();
graphicCount = graphicCount + 1;
editOver = true;
});
connect.connect(undoManager, "onChange", function() {
//enable or disable buttons depending on current state of application
if (undoManager.canUndo) {
$("#undo").prop('disabled', false);
// $('.userDashboard__drawTripActionGroup__saveTrip').show();
// $('.userDashboard__drawTripActionGroup__clearScreen').show();
} else {
$("#undo").prop('disabled', true);
$('.userDashboard__drawTripActionGroup__saveTrip').hide();
$('.userDashboard__drawTripActionGroup__clearScreen').hide();
}
if (undoManager.canRedo) {
$("#redo").prop('disabled', false);
} else {
$("#redo").prop('disabled', true);
}
});
// undo/redo end
if (map) {
alreadyLoad = map;
}
// map = new Map("EditTrekMapDiv", {
// basemap: "topo",
// center: [lat, long],
// zoom: 8,
// maxzoom: 22,
// minzoom: 2
// });
// center of the map
/* const pointss = new Point({
x: 6832.430696818978,
y: -209082.39095501788,
spatialReference: viewSpatialReference
});*/
const viewSpatialReference = new SpatialReference({
wkid: 54042 // winkel III
});
// simple marker symbol to represent earthquake locations
const earthquakeMarker = new SimpleMarkerSymbol("solid", 8, null, new Color([238, 69, 0, 0.5]))
// center of the map
const pointss = new Point({
x: 6832.430696818978,
y: -209082.39095501788,
spatialReference: viewSpatialReference
});
map = new Map("map", {
basemap: "topo",
//center: [lat, long],
center: pointss,
zoom: mapZoom,
maxzoom: MAXZOOM,
minzoom: MINZOOM
});
var mapSources = {};
mapSources = mapSourcesData;
searchWidgetAlready = dijit.byId("search");
if (searchWidgetAlready) {
searchWidgetAlready.destroy();
searchWidgetAlready = null;
}
var search = new Search({
map: map,
enableInfoWindow: false
}, "search");
search.startup();
map.on("load", function() {
projectionPromise.then(function () {
// read the geojson data from esriRequest promise
/*dataRequestPromise.then(function (response) {
// loop through geojson earthquakes and process the data
response.features.map(function (feature, i) {
const inSpatialReference = new SpatialReference({
wkid: 4326
});
// create a point from a geoJSON point and set its spatialReference to WGS84
const point = new Point(feature.geometry.coordinates, inSpatialReference);
// project the point from WGS84 to winkel III projection
const projectedPoint = projection.project(point, viewSpatialReference);
// create new graphic and set its geometry to the projected point
const attributes = {
ObjectID: i
};
const graphic = new Graphic(projectedPoint, earthquakeMarker, attributes);
// add the graphic representing earthquake location to the graphicslayer
graphicsLayer.add(graphic);
});
})
.otherwise(function (error) {
console.log("error happened while projecting", error);
});*/
});
createToolbar()
});
//map.on("load", createToolbar);
map.on("extent-change", showExtent);
function showExtent(ext) {
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
zoomInfo = ext.lod.level;
if(pointBM.y){
current_lat = pointBM.y;
}else{
var bsCenterData = bsCenter.split(',');
current_lat=parseFloat(bsCenterData[0])
pointBM.y = current_lat;
}
if(pointBM.x){
current_lon = pointBM.x;
}else{
current_lon=parseFloat(bsCenterData[1])
pointBM.x = current_lon;
}
current_zoom = zoomInfo;
if((localStorage.getItem("edit"+trpId) != '') && (localStorage.getItem("edit"+trpId) != undefined)) {
if ((localStorage.getItem("lon"+trpId) != '') && (localStorage.getItem("lon"+trpId) != undefined)) {
current_lat = parseFloat(localStorage.getItem("lon"+trpId));
current_lon = parseFloat(localStorage.getItem("lat"+trpId));
// localStorage.setItem("zoomSet",'')
}
if ((localStorage.getItem("zoomSet"+trpId) != '') && (localStorage.getItem("zoomSet"+trpId) != undefined)) {
current_zoom = localStorage.getItem("zoomSet"+trpId);
// localStorage.setItem("zoomSet",'')
}
localStorage.setItem("edit"+trpId, '')
}
if (mapSourceMinZoom == undefined) {
mapSourceMinZoom = MINZOOM;
}
if (ext.lod.level == mapSourceMinZoom + 1) {
prev_lat = current_lat;
prev_lon = current_lon;
}
if (mapSourceMinZoom == undefined) {
mapSourceMinZoom = MINZOOM;
}
if (mapSourceMaxZoom == undefined) {
mapSourceMaxZoom = MAXZOOM;
}
if (ext.lod.level == mapSourceMinZoom + 1) {
prev_lat = current_lat;
prev_lon = current_lon;
}
if (ext.lod.level < mapSourceMinZoom) {
zoomInfo = current_zoom = mapSourceMinZoom;
// map.centerAndZoom([current_lon, current_lat], mapSourceMinZoom);
map.centerAndZoom([prev_lon, prev_lat], mapSourceMinZoom);
}
if (ext.lod.level > mapSourceMaxZoom) {
zoomInfo = current_zoom = mapSourceMaxZoom;
map.centerAndZoom([current_lon, current_lat], mapSourceMaxZoom);
}
if((parseInt(mapSourceMinZoom) == parseInt(current_zoom))){
$('.esriSimpleSliderDecrementButton').addClass('esriSimpleSliderDisabledButton')
}else{
$('.esriSimpleSliderDecrementButton').removeClass('esriSimpleSliderDisabledButton')
}
if((parseInt(mapSourceMaxZoom) == parseInt(current_zoom))){
map.disableScrollWheel();
map.disableRubberBandZoom();
map.disableDoubleClickZoom();
$('.esriSimpleSliderIncrementButton').addClass('esriSimpleSliderDisabledButton')
}else{
map.enableScrollWheel();
map.enableRubberBandZoom();
map.enableDoubleClickZoom();
$('.esriSimpleSliderIncrementButton').removeClass('esriSimpleSliderDisabledButton')
}
// //------------Start mapSource DeepLink---------------
if (basemapInfoBM != '' ) {
//console.log(basemapInfoBM);
var vrdata = '#/trip?trp=' + data._id + '&m=' + basemapInfoBM + '&loc=' + current_lon + ',' + current_lat + '&z=' + current_zoom;
window.location.replace(vrdata);
// history.pushState(null, null, vrdata);
}
// //--------------------End-----------------------------
}
var polygonSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([0, 0, 255]),
3), new Color([0, 255, 0, 0.2]));
var polylineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([0, 0, 255]),
3);
var pointSymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 20,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new Color([0, 0, 255]), 1),
new Color([0, 255, 0, 0.25]));
function closeDialog() {
map.graphics.clear();
map.infoWindow.hide();
}
function createToolbar() {
addGraphics();
initToolbar();
if (!alreadyLoad) {
// editToolbar.deactivate();
// editToolbar.destroy();
}
if ((localStorage.getItem("userName") != '') && (localStorage.getItem("userName") != undefined) && (localStorage.getItem("userName") == data.userName)) {
editToolbar = new Edit(map);
editToolbar.on("draw-end", addNewGraphics);
editToolbar.on("scale-stop", function(evt) {
evt.graphic.geometry.featureId = selectedTrekInfo.selectedGraphicId;
evt.graphic.geometry.name = selectedTrekInfo.name;
evt.graphic.geometry.cmt = selectedTrekInfo.cmt;
evt.graphic.geometry.desc = selectedTrekInfo.desc;
});
}
//Activate the toolbar when you click on a graphic
if ((localStorage.getItem("userName") != '') && (localStorage.getItem("userName") != undefined) && (localStorage.getItem("userName") == data.userName)) {
map.graphics.on("click", function(evt) {
//dbl-click
// editToolbar.activate(Edit.EDIT_VERTICES , evt.graphic);
editOver = true;
if (shapeInfo == '') {
$('.userDashboard__drawTripActionGroup__saveTrip').show();
$('.userDashboard__drawTripActionGroup__clearScreen').show();
// $('#btnSave').show();
// $('#btnCancel').show();
editOver = true;
// event.stop(evt);
selectedTrekInfo = {};
selectedTrekInfo.selectedGraphicId = evt.graphic.geometry.featureId;
selectedTrekInfo.name = evt.graphic.geometry.name;
selectedTrekInfo.cmt = evt.graphic.geometry.cmt;
selectedTrekInfo.desc = evt.graphic.geometry.desc;
// if(evt.graphic.geometry.name !=='' ||evt.graphic.geometry.cmt !=='' ||evt.graphic.geometry.desc !=='')
// {
// selectedTrekInfoData.push(selectedTrekInfo);
// }
selectedGraphic = evt.graphic;
// $('#btnSaveGraphic').hide();
$('#btnDeleteGraphic').show();
$('#btnAddTrekInfo').show();
event.stop(evt);
activateToolbar(evt.graphic);
}
});
}
//deactivate the toolbar when you click outside a graphic
map.on("click", function(evt) {
console.log('click')
// $('#btnSaveGraphic').show();
$('#btnDeleteGraphic').hide();
$('#btnAddTrekInfo').hide();
if (editOver) {
editOver = false;
}
selectedGraphic = "";
editToolbar.deactivate();
newUpdateGraphics();
// updateGraphics();
});
map.on("double-click", function(evt) {
evt.stopPropagation();
});
map.on("mouse-wheel", function(evt) {
evt.stopPropagation();
});
map.graphics.enableMouseEvents();
// map.graphics.on("mouse-out", closeDialog);
}
myGlobalEditObj = {
editTrek: function updateGraphics(objArr) {
featuresArr = [];
// var geoArr = map.graphics.graphics;
var geoArr = objArr;
for (var k = 0; k < geoArr.length; k++) {
var trkInfoData;
if (geoArr[k].geometry.featureId !== undefined && geoArr[k].geometry.featureId !== null) {
trkInfoData = selectedTrekInfoData.find(x => x.selectedGraphicId === geoArr[k].geometry.featureId)
}
if (trkInfoData == undefined || trkInfoData == null || trkInfoData == '') {
trkInfoData = {};
trkInfoData.name = '';
trkInfoData.cmt = '';
trkInfoData.desc = '';
}
var featuresObj = {
type: "Feature",
properties: {
color: new Color([255, 255, 0, 0.25]),
width: 42,
opacity: 1,
name: trkInfoData.name || '',
cmt: trkInfoData.cmt || '',
desc: trkInfoData.desc || ''
}
};
var geometryObj = {};
var coordinates;
switch (geoArr[k].geometry.type) {
case "point":
if (geoArr[k].geometry.x !== 0 && geoArr[k].geometry.y !== 0) {
if ((geoArr[k].geometry.y <= 90 && geoArr[k].geometry.y >= -90)) {
coordinates = [
geoArr[k].geometry.x,
geoArr[k].geometry.y
];
} else {
var geoConvert = webMercatorUtils.webMercatorToGeographic(geoArr[k].geometry)
coordinates = [
geoConvert.x,
geoConvert.y
];
}
}
break;
case "multipoint":
if ((geoArr[k].geometry.points[0][1] <= 90 && geoArr[k].geometry.points[0][1] >= -90)) {
coordinates = geoArr[k].geometry.points;
} else {
var geoConvert = webMercatorUtils.webMercatorToGeographic(geoArr[k].geometry)
coordinates = geoConvert.points;
}
break;
//also for freehandpolyline
case "polyline":
//coordinates = geoArr[k].geometry.paths;
if ((geoArr[k].geometry.paths[0][0][1] <= 90 && geoArr[k].geometry.paths[0][0][1] >= -90)) {
coordinates = geoArr[k].geometry.paths;
} else {
var geoConvert = webMercatorUtils.webMercatorToGeographic(geoArr[k].geometry)
coordinates = geoConvert.paths;
}
break;
//also for circle,ellipse,polygon,freehand polygon
case "polygon":
//coordinates = geoArr[k].geometry.rings;
if ((geoArr[k].geometry.rings[0][0][1] <= 90 && geoArr[k].geometry.rings[0][0][1] >= -90)) {
coordinates = geoArr[k].geometry.rings;
} else {
var geoConvert = webMercatorUtils.webMercatorToGeographic(geoArr[k].geometry)
coordinates = geoConvert.rings;
}
break;
case "extent":
if ((geoArr[k].geometry.ymin <= 90 && geoArr[k].geometry.ymin >= -90)) {
coordinates = {
xmin: geoArr[k].geometry.xmin,
ymin: geoArr[k].geometry.ymin,
xmax: geoArr[k].geometry.xmax,
ymax: geoArr[k].geometry.ymax
};
} else {
var geoConvert = webMercatorUtils.webMercatorToGeographic(geoArr[k].geometry)
coordinates = {
xmin: geoConvert.xmin,
ymin: geoConvert.ymin,
xmax: geoConvert.xmax,
ymax: geoConvert.ymax
};
}
break;
}
if (coordinates !== undefined && coordinates !== null && coordinates !== '') {
geometryObj = {
type: geoArr[k].geometry.type,
coordinates: coordinates
}
featuresObj.geometry = geometryObj;
featuresObj.basemapType = basemapType || 'topo';
featuresArr.push(featuresObj);
}
}
var featureCollections = {
type: "FeatureCollection",
features: featuresArr
}
console.log(featuresArr);
}
}
function addGraphics() {
if (basemapType !== 'topo') {
addLayerOnMap(basemapType, true);
} else {
$("#basemapthumbnailId").attr('src', 'modules/images/defaultBasemap.png');
$("#basemapSpanId").html('');
}
$('#btnDeleteGraphic').hide();
$('#undo').show();
$('#redo').show();
var newGraphics;
var trekName = data.trekName;
var trekFolder = data.trekFolder;
var imgUrl = (data.imageUrl == undefined || data.imageUrl == null || data.imageUrl == '') ? "modules/images/Background.jpg" : data.imageUrl;
var propName, propCmt, propDesc, propType;
for (var j = 0; j < data.features.length; j++) {
if (data.features[j].geometry.type == "point" || data.features[j].geometry.type == "Point") {
var pointX = data.features[j].geometry.coordinates.x || data.features[j].geometry.coordinates[0];
var pointY = data.features[j].geometry.coordinates.y || data.features[j].geometry.coordinates[1];
var point = new Point(pointX, pointY);
// map.graphics.add(new Graphic(point, pointSymbol));
newGraphics = new Graphic(point, pointSymbol);
// propName = data.features[j].properties.name || '';
// propCmt = data.features[j].properties.cmt || '';
// propDesc = data.features[j].properties.desc || '';
// propType = data.features[j].properties.type || '';
newGraphics.geometry.featureId = new Date().getTime();
newGraphics.geometry.name = data.features[j].properties.name || '';
newGraphics.geometry.cmt = data.features[j].properties.cmt || '';
newGraphics.geometry.desc = data.features[j].properties.desc || data.features[j].properties.description || '';
//map.graphics.add(newGraphics);//undo/redo
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: newGraphics
});
undoManager.add(operation);
map.graphics.add(newGraphics);
//--------undo/redo End--------------
} else if (data.features[j].geometry.type == "multipoint") {
var multipoint = new Multipoint({
points: data.features[j].geometry.coordinates
});
// map.graphics.add(new Graphic(multipoint, pointSymbol));
newGraphics = new Graphic(multipoint, pointSymbol);
// propName = data.features[j].properties.name || '';
// propCmt = data.features[j].properties.cmt || '';
// propDesc = data.features[j].properties.desc || '';
// propType = data.features[j].properties.type || '';
newGraphics.geometry.featureId = new Date().getTime();
newGraphics.geometry.name = data.features[j].properties.name || '';
newGraphics.geometry.cmt = data.features[j].properties.cmt || '';
newGraphics.geometry.desc = data.features[j].properties.desc || data.features[j].properties.description || '';
//map.graphics.add(newGraphics);//undo/redo
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: newGraphics
});
graphicCount = graphicCount + 1;
undoManager.add(operation);
map.graphics.add(newGraphics);
//--------undo/redo End--------------
} else if (data.features[j].geometry.type == "polyline" || data.features[j].geometry.type == "LineString") {
var polyline;
if (data.features[j].geometry.type == "LineString") {
polyline = new Polyline({
"paths": [data.features[j].geometry.coordinates]
});
} else {
polyline = new Polyline({
"paths": data.features[j].geometry.coordinates
});
}
//map.graphics.add(new Graphic(polyline, polylineSymbol));
newGraphics = new Graphic(polyline, polylineSymbol);
// propName = data.features[j].properties.name || '';
// propCmt = data.features[j].properties.cmt || '';
// propDesc = data.features[j].properties.desc || '';
// propType = data.features[j].properties.type || '';
newGraphics.geometry.featureId = new Date().getTime();
newGraphics.geometry.name = data.features[j].properties.name || '';
newGraphics.geometry.cmt = data.features[j].properties.cmt || '';
newGraphics.geometry.desc = data.features[j].properties.desc || data.features[j].properties.description || '';
//map.graphics.add(newGraphics);//undo/redo
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: newGraphics
});
graphicCount = graphicCount + 1;
undoManager.add(operation);
map.graphics.add(newGraphics);
//--------undo/redo End--------------
} else if (data.features[j].geometry.type == "polygon" || data.features[j].geometry.type == "Polygon") {
var polygon = new Polygon({
"rings": data.features[j].geometry.coordinates,
});
//map.graphics.add(new Graphic(polygon, polygonSymbol));
newGraphics = new Graphic(polygon, polygonSymbol);
// propName = data.features[j].properties.name || '';
// propCmt = data.features[j].properties.cmt || '';
// propDesc = data.features[j].properties.desc || '';
// propType = data.features[j].properties.type || '';
newGraphics.geometry.featureId = new Date().getTime();
newGraphics.geometry.name = data.features[j].properties.name || '';
newGraphics.geometry.cmt = data.features[j].properties.cmt || '';
newGraphics.geometry.desc = data.features[j].properties.desc || data.features[j].properties.description || '';
//map.graphics.add(newGraphics);//undo/redo
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: newGraphics
});
graphicCount = graphicCount + 1;
undoManager.add(operation);
map.graphics.add(newGraphics);
//--------undo/redo End--------------
} else if (data.features[j].geometry.type == "extent") {
var extent = new Extent({
"xmin": data.features[j].geometry.coordinates.xmin,
"ymin": data.features[j].geometry.coordinates.ymin,
"xmax": data.features[j].geometry.coordinates.xmax,
"ymax": data.features[j].geometry.coordinates.ymax
});
//map.graphics.add(new Graphic(extent, polygonSymbol));
newGraphics = new Graphic(extent, polygonSymbol);
// propName = data.features[j].properties.name || '';
// propCmt = data.features[j].properties.cmt || '';
// propDesc = data.features[j].properties.desc || '';
// propType = data.features[j].properties.type || '';
newGraphics.geometry.featureId = new Date().getTime();
newGraphics.geometry.name = data.features[j].properties.name || '';
newGraphics.geometry.cmt = data.features[j].properties.cmt || '';
newGraphics.geometry.desc = data.features[j].properties.desc || data.features[j].properties.description || '';
//map.graphics.add(newGraphics);//undo/redo
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: newGraphics
});
graphicCount = graphicCount + 1;
undoManager.add(operation);
map.graphics.add(newGraphics);
//--------undo/redo End--------------
}
//Info window
// var infoTemplate = new InfoTemplate();
// infoTemplate.setTitle("<b>"+propName+"</b>");
// infoTemplate.setContent("<b>cmt : </b>"+propCmt+"<br/>" +
// "<b>desc : </b>"+propDesc+"<br/><br/>" +
// "<b>type : </b>"+propType+"<br/>");
//
//
// newGraphics.setInfoTemplate(infoTemplate);
// locationLayer.add(newGraphics);
//locationLayer.setOpacity(0);
// if(j==0){
// map.addLayer(locationLayer) // Makes sure that map is loaded
// }
}
}
// var highlightSymbol = new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
// new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
// new Color([255, 0, 0]), 3), new Color([125, 125, 125, 0.35]));
// locationLayer.on("mouse-over",function (event) {
//
// map.graphics.clear(); //use the maps graphics layer as the highlight layer
//
// var graphic = event.graphic;
// map.infoWindow.setContent(graphic.getContent());
// map.infoWindow.setTitle(graphic.getTitle());
// // var highlightSymbol = graphic.geometry.type == "polygon" ? new SimpleFillSymbol():(graphic.geometry.type == "polyline"?new SimpleLineSymbol():new SimpleMarkerSymbol());
//
// var highlightGraphic = new Graphic(graphic.geometry, highlightSymbol);
//
// map.graphics.add(highlightGraphic);
// map.infoWindow.show(event.screenPoint,
// map.getInfoWindowAnchor(event.screenPoint));
//
// });
function activateToolbar(graphic) {
var tool = 0;
if (registry.byId("tool_move").checked) {
tool = tool | Edit.MOVE;
}
if (registry.byId("tool_vertices").checked) {
tool = tool | Edit.EDIT_VERTICES;
}
if (registry.byId("tool_scale").checked) {
tool = tool | Edit.SCALE;
}
if (registry.byId("tool_rotate").checked) {
tool = tool | Edit.ROTATE;
}
// enable text editing if a graphic uses a text symbol
if (graphic.symbol.declaredClass === "esri.symbol.TextSymbol") {
tool = tool | Edit.EDIT_TEXT;
}
//specify toolbar options
var options = {
allowAddVertices: registry.byId("vtx_ca").checked,
allowDeleteVertices: registry.byId("vtx_cd").checked,
uniformScaling: registry.byId("uniform_scaling").checked
};
editToolbar.activate(tool, graphic, options);
}
//-----------------------------------------------------------
function initToolbar() {
tb = new Draw(map);
tb.on("draw-end", addNewGraphics);
// event delegation so a click handler is not
// needed for each individual button
// on(dom.byId("info"), "click", function(evt) {
// if ( evt.target.id === "info" ) {
//
// return;
// }
//
// var tool = evt.target.id.toLowerCase();
//
// shapeInfo = tool;
// map.disableMapNavigation();
// tb.activate(tool);
// });
on(dom.byId("ulPoint"), "click", function(evt) {
if (evt.target.id === "ulPoint") {
return;
}
var tool = evt.target.id.toLowerCase();
shapeInfo = tool;
map.disableMapNavigation();
tb.activate(tool);
});
on(dom.byId("ulLine"), "click", function(evt) {
if (evt.target.id === "ulLine") {
return;
}
var tool = evt.target.id.toLowerCase();
shapeInfo = tool;
map.disableMapNavigation();
tb.activate(tool);
});
on(dom.byId("ulShape"), "click", function(evt) {
if (evt.target.id === "ulShape") {
return;
}
var tool = evt.target.id.toLowerCase();
shapeInfo = tool;
map.disableMapNavigation();
tb.activate(tool);
});
on(dom.byId("clear_draw"), "click", function(evt) {
map.graphics.clear();
});
}
function addNewGraphics(evt) {
// $('#btnSave').show();
// $('#btnCancel').show();
$('.userDashboard__drawTripActionGroup__saveTrip').show();
$('.userDashboard__drawTripActionGroup__clearScreen').show();
shapeInfo = '';
// btnSave.style.display = "block";
// var polygonSymbol = new SimpleFillSymbol();
// var polylineSymbol = new SimpleLineSymbol();
// var pointSymbol = new SimpleMarkerSymbol();
//deactivate the toolbar and clear existing graphics
tb.deactivate();
map.enableMapNavigation();
editOver = true;
// figure out which symbol to use
var symbol;
if (evt.geometry.type === "point" || evt.geometry.type === "multipoint") {
symbol = pointSymbol;
} else if (evt.geometry.type === "line" || evt.geometry.type === "polyline") {
symbol = polylineSymbol;
} else {
symbol = polygonSymbol;
}
var featuresObj = {
type: "Feature",
properties: {
color: symbol.color,
width: symbol.width,
opacity: 1
}
};
//map.graphics.add(new Graphic(evt.geometry, symbol));
var graphic = new Graphic(evt.geometry, symbol);
//--------undo/redo Start------------
var operation = new CustomOperation.Add({
graphicsLayer: map.graphics,
addedGraphic: graphic
});
graphicCount = graphicCount + 1;
undoManager.add(operation);
map.graphics.add(graphic);
//--------undo/redo End--------------
}
//-----------------------------------------------------------
//basemap gallary
changeVectorLayerOnMap = function(vectorLayerStyleId) {
var vectorLayerStyle = vectorLayerStyleId.getAttribute("data-mapListVectorId");
var vectorLayerStyleData = vectorLayerArr.vectorlayer.find(x => x.style === vectorLayerStyle);
map.removeAllLayers();
// map.centerAndZoom([vectorLayerArr.lon, vectorLayerArr.lat], vectorLayerArr.zoom);
map.centerAndZoom([current_lon, current_lat], vectorLayerArr.zoom);
if (vectorLayerStyleData.mapsubtype == "arcgis") {
var vctrlayerStyle = new VectorTileLayer(vectorLayerStyleData.styleurl);
map.addLayer(vctrlayerStyle);
} else {
var vctrlayerStyle = new OpenStreetMapLayer(vectorLayerStyleData.styleurl);
map.addLayer(vctrlayerStyle);
}
// console.log('vectorLayerStyleData',vectorLayerStyleData);
}
addLayerOnMap = function(mapListId, addBasemap) {
$("#vectorLyrId").hide();
vectorLayerArr = [];
var mapid = '';
var LayerDataMapArr = '';
if (!addBasemap) {
mapid = mapListId.getAttribute("data-mapListId");
LayerDataMapArr = mapSources.find(x => x.shortname === mapid)
if (current_lat !== 0 && current_lon !== 0 && current_lat !== '' && current_lon !== '') {
LayerDataMapArr.lat = current_lat;
LayerDataMapArr.lon = current_lon;
LayerDataMapArr.zoom = current_zoom;
}
} else {
LayerDataMapArr = mapSources.find(x => x.shortname === mapListId)
//Set trek lon lat and zoom for map center
LayerDataMapArr.lon = lat;
LayerDataMapArr.lat = long;
LayerDataMapArr.zoom = mapZoom;
}
// //----------MapSource DeepLink Start-------------
// if (bsMap != null) {
// var vrBsCenterr = '';
// vrBsCenterr = bsCenter;
// var vrBsCenterrArr = vrBsCenterr.split(',');
// LayerDataMapArr.lat = vrBsCenterrArr[1];
// LayerDataMapArr.lon = vrBsCenterrArr[0];
// LayerDataMapArr.zoom = bsZoom;
// }
basemapInfoBM = LayerDataMapArr.shortname;
mapSourceMinZoom = LayerDataMapArr.minzoom;
mapSourceMaxZoom = LayerDataMapArr.maxzoom;
// if(!addBasemap){
// angular.element(document.getElementById('mainController')).scope().GetCurrentCatalog('',LayerDataMapArr);
// }
//------------------------Show Map by MapId--------------------
if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "mapwithmapid") {
map.removeAllLayers();
arcgisUtils.getItem(LayerDataMapArr.vectorlayer[0].webmapid).then(function(response) {
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
var webtileurl = response.itemData.baseMap.baseMapLayers[0].templateUrl;
var addWebTilepLayer = new WebTiledLayer(webtileurl);
map.addLayer(addWebTilepLayer);
var resData = response.itemData.operationalLayers;
for (var i = 0; i < resData.length; i++) {
var vctrlayerStyle = new VectorTileLayer(resData[i].styleUrl);
map.addLayer(vctrlayerStyle);
}
});
}
//-------------------------------End-----------------------------
else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "vector") {
// vectorLayerArr=LayerDataMapArr;
// map.removeAllLayers();
// map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
// var vctrlayer = new VectorTileLayer(LayerDataMapArr.vectorlayer[1].styleurl);
// map.addLayer(vctrlayer);
// $("#vectorLyrId").show();
LayerDataMapArr.vectorlayer.forEach(
function(layeritem) {
if (layeritem.mapsubtype == "arcgis") {
var vctrlayerStyle = new VectorTileLayer(layeritem.styleurl);
map.addLayer(vctrlayerStyle);
return;
} else {
var vctrlayerStyle = new OpenStreetMapLayer(layeritem.styleurl);
map.addLayer(vctrlayerStyle);
return;
}
});
} else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "SHASHPLUSONE") {
map.removeAllLayers();
if (LayerDataMapArr != undefined) {
var layerDatafinalUrl = LayerDataMapArr.baseurl;
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
var finalUrlForabc = layerDatafinalUrl.replace("{SHASH}", "1"); //"${subDomain}");
var addMapLayer = new WebTiledLayer(finalUrlForabc, {
"baseurl": finalUrlForabc,
"classtype": LayerDataMapArr.classtype,
"copyright": LayerDataMapArr.copyright,
"copyrighturl": LayerDataMapArr.copyrighturl,
"desc": LayerDataMapArr.desc,
"image": LayerDataMapArr.image,
"lat": LayerDataMapArr.lat,
"lon": LayerDataMapArr.lon,
"maxzoom": LayerDataMapArr.maxzoom,
"minzoom": LayerDataMapArr.minzoom,
"name": LayerDataMapArr.name,
"shortname": LayerDataMapArr.shortname,
"tileresolvertype": LayerDataMapArr.tileresolvertype,
"zoom": LayerDataMapArr.zoom //,
//"subDomains": ["1", "2","3","4"]
//"opacity": LayerDataMapArr.alpha
});
addMapLayer.getTileUrl = function(level, row, column) {
basemapInfoBM = LayerDataMapArr.shortname;
zoomInfo = level;
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
if (LayerDataMapArr.alturl) {
for (var zm = 0; zm < LayerDataMapArr.alturl.length; zm++) {
if (level <= LayerDataMapArr.alturl[zm].maxzoom) {
finalFilterUrl = replaceURLString(level, row, column, LayerDataMapArr.alturl[zm].url);
return finalFilterUrl;
}
}
}
//if out of range of alturl, use baseurl
finalFilterUrl = replaceURLString(level, row, column, layerDatafinalUrl);
return finalFilterUrl;
};
// console.log(addMapLayer.getTileUrl)
map.addLayer(addMapLayer);
}
}
else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "SHASH") {
map.removeAllLayers();
if (LayerDataMapArr != undefined) {
var layerDatastrUrl = LayerDataMapArr.baseurl;
var layerDatafinalUrl = LayerDataMapArr.baseurl;
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
var finalUrlForabc = layerDatafinalUrl.replace("{SHASH}", "0"); //"${subDomain}");
var addMapLayer = new WebTiledLayer(finalUrlForabc, {
"baseurl": finalUrlForabc,
"classtype": LayerDataMapArr.classtype,
"copyright": LayerDataMapArr.copyright,
"copyrighturl": LayerDataMapArr.copyrighturl,
"desc": LayerDataMapArr.desc,
"image": LayerDataMapArr.image,
"lat": LayerDataMapArr.lat,
"lon": LayerDataMapArr.lon,
"maxzoom": LayerDataMapArr.maxzoom,
"minzoom": LayerDataMapArr.minzoom,
"name": LayerDataMapArr.name,
"shortname": LayerDataMapArr.shortname,
"tileresolvertype": LayerDataMapArr.tileresolvertype,
"zoom": LayerDataMapArr.zoom //,
//"subDomains": ["0", "1", "2","3"]
//"opacity": LayerDataMapArr.alpha
});
addMapLayer.getTileUrl = function(level, row, column) {
basemapInfoBM = LayerDataMapArr.shortname;
zoomInfo = level;
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
if (LayerDataMapArr.alturl) {
for (var zm = 0; zm < LayerDataMapArr.alturl.length; zm++) {
if (level <= LayerDataMapArr.alturl[zm].maxzoom) {
finalFilterUrl = replaceURLString(level, row, column, LayerDataMapArr.alturl[zm].url);
return finalFilterUrl;
}
}
}
//if out of range of alturl, use baseurl
finalFilterUrl = replaceURLString(level, row, column, layerDatafinalUrl);
return finalFilterUrl;
};
//console.log(addMapLayer.getTileUrl)
map.addLayer(addMapLayer);
}
} else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "abc") {
map.removeAllLayers();
if (LayerDataMapArr != undefined) {
var layerDatastrUrl = LayerDataMapArr.baseurl;
var layerDatafinalUrl = '';
layerDatafinalUrl = LayerDataMapArr.baseurl;
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
var finalUrlForabc = layerDatafinalUrl.replace("{abc}", "a"); //"${subDomain}");
var addMapLayer = new WebTiledLayer(finalUrlForabc, {
"baseurl": finalUrlForabc,
"classtype": LayerDataMapArr.classtype,
"copyright": LayerDataMapArr.copyright,
"copyrighturl": LayerDataMapArr.copyrighturl,
"desc": LayerDataMapArr.desc,
"image": LayerDataMapArr.image,
"lat": LayerDataMapArr.lat,
"lon": LayerDataMapArr.lon,
"maxzoom": LayerDataMapArr.maxzoom,
"minzoom": LayerDataMapArr.minzoom,
"name": LayerDataMapArr.name,
"shortname": LayerDataMapArr.shortname,
"tileresolvertype": LayerDataMapArr.tileresolvertype,
"zoom": LayerDataMapArr.zoom //,
//"subDomains": ["a", "b", "c"]
//"opacity": LayerDataMapArr.alpha
});
addMapLayer.getTileUrl = function(level, row, column) {
basemapInfoBM = LayerDataMapArr.shortname;
zoomInfo = level;
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
if (LayerDataMapArr.alturl) {
for (var zm = 0; zm < LayerDataMapArr.alturl.length; zm++) {
if (level <= LayerDataMapArr.alturl[zm].maxzoom) {
finalFilterUrl = replaceURLString(level, row, column, LayerDataMapArr.alturl[zm].url);
return finalFilterUrl;
}
}
}
//if out of range of alturl, use baseurl
finalFilterUrl = replaceURLString(level, row, column, finalUrlForabc);
return finalFilterUrl;
};
map.addLayer(addMapLayer);
}
}
else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "webtile") {
map.removeAllLayers();
pointBMx = map.extent.getCenter();
if (LayerDataMapArr != undefined) {
var layerDatastrUrl = LayerDataMapArr.baseurl;
var layerDatafinalUrl = LayerDataMapArr.baseurl;
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
// console.log(layerDatafinalUrl);
var WebTiledLayerOptions = {
"baseurl": layerDatafinalUrl,
"classtype": LayerDataMapArr.classtype,
"copyright": LayerDataMapArr.copyright,
"copyrighturl": LayerDataMapArr.copyrighturl,
"desc": LayerDataMapArr.desc,
"image": LayerDataMapArr.image,
"lat": LayerDataMapArr.lat,
"lon": LayerDataMapArr.lon,
"maxzoom": parseInt(LayerDataMapArr.maxzoom),
"minzoom": parseInt(LayerDataMapArr.minzoom),
"name": LayerDataMapArr.name,
"shortname": LayerDataMapArr.shortname,
"tileresolvertype": LayerDataMapArr.tileresolvertype,
//"zoom": LayerDataMapArr.zoom,
"zoom": parseInt((parseInt(LayerDataMapArr.maxzoom) + parseInt(LayerDataMapArr.minzoom)) /2),
//"opacity": LayerDataMapArr.alpha
};
//console.log(WebTiledLayerOptions)
var addMapLayer = new WebTiledLayer(layerDatafinalUrl, WebTiledLayerOptions );
addMapLayer.refresh();
//set the getTitleUrl
addMapLayer.getTileUrl = function(level, row, column) {
basemapInfoBM = LayerDataMapArr.shortname;
zoomInfo = level;
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
if (LayerDataMapArr.alturl) {
for (var zm = 0; zm < LayerDataMapArr.alturl.length; zm++) {
// console.log('has_alturl')
if (level <= LayerDataMapArr.alturl[zm].maxzoom) {
finalFilterUrl = replaceURLString(level, row, column, LayerDataMapArr.alturl[zm].url);
return finalFilterUrl;
}
}
}
//if out of range of alturl, use baseurl
finalFilterUrl = replaceURLString(level, row, column, layerDatafinalUrl);
return finalFilterUrl;
};
map.addLayer(addMapLayer);
}
}
else if (LayerDataMapArr != undefined && LayerDataMapArr.maptype.trim() != '' && LayerDataMapArr.maptype == "multilayer")
{
map.removeAllLayers();
LayerDataMapArr.maplayer.forEach(function(multilayermapitem) {
var layerData = mapSources.find(x => x.visibility === "layer" && x.shortname === multilayermapitem.layer)
if (layerData != undefined) {
// var layerDatastrUrl = layerData.baseurl;
var layerDatafinalUrl = layerData.baseurl;
map.centerAndZoom([LayerDataMapArr.lon, LayerDataMapArr.lat], LayerDataMapArr.zoom);
// map.centerAndZoom([layerData.lon, layerData.lat], layerData.zoom);
var addMapLayer = new WebTiledLayer(layerDatafinalUrl, {
"baseurl": layerDatafinalUrl,
"classtype": layerData.classtype,
"copyright": layerData.copyright,
"copyrighturl": layerData.copyrighturl,
"desc": layerData.desc,
"image": layerData.image,
"lat": layerData.lat,
"lon": layerData.lon,
"maxzoom": layerData.maxzoom,
"minzoom": layerData.minzoom,
"name": layerData.name,
"shortname": layerData.shortname,
"tileresolvertype": layerData.tileresolvertype,
"zoom": layerData.zoom,
"opacity": multilayermapitem.alpha
});
//getTileUrl Start-----------------
//var finalFilterUrl ;
addMapLayer.getTileUrl = function(level, row, column) {
basemapInfoBM = LayerDataMapArr.shortname;
zoomInfo = level;
var pointBMx = map.extent.getCenter();
pointBM = webMercatorUtils.webMercatorToGeographic(pointBMx);
if (LayerDataMapArr.alturl) {
for (var zm = 0; zm < LayerDataMapArr.alturl.length; zm++) {
if (level <= LayerDataMapArr.alturl[zm].maxzoom) {
finalFilterUrl = replaceURLString(level, row, column, LayerDataMapArr.alturl[zm].url);
return finalFilterUrl;
}
}
}
//if out of range of alturl, use baseurl
finalFilterUrl = replaceURLString(level, row, column, layerDatafinalUrl);
return finalFilterUrl;
};
map.addLayer(addMapLayer);
}
});
}
$("#basemapthumbnailId").attr('src', "https://crittermap-bc865.firebaseapp.com/images/" + LayerDataMapArr.image);
$("#basemapSpanId").html(LayerDataMapArr.name);
$('.modal-backdrop').remove();
$("#basemapModal").modal('hide');
}
function replaceURLString(level, row, column, finalFilterUrl) {
finalFilterUrl = finalFilterUrl.replace("{z}", level).replace("{x}", column).replace("{y}", row);
finalFilterUrl = finalFilterUrl.replace("${level}", level).replace("${col}", column).replace("${row}", row);
finalFilterUrl = finalFilterUrl.replace("{l}", level);
finalFilterUrl = finalFilterUrl.replace("{abc}", "a").replace("{SHASH}", "0").replace("{SHASHPLUSONE}", "1");
if (finalFilterUrl.indexOf("{nzy}") !== -1) {
var filterUrl = finalFilterUrl.replace("{z}", level).replace("{x}", column).replace("{y}", row);
var vData = ((1 << level) - 1 - row);
finalFilterUrl = filterUrl.replace("{nzy}", vData);
}
if (finalFilterUrl.indexOf("{quadtree}") !== -1) {
var quadtree = "";
row = ((1 << level) - 1) - row;
for (var i = level; i >= 1; i--) {
var digit = 0;
var mask = 1 << (i - 1);
if ((column & mask) != 0)
digit += 1;
if ((row & mask) != 0)
digit += 2;
quadtree += digit;
}
finalFilterUrl = finalFilterUrl.replace("{quadtree}", quadtree);
}
if (finalFilterUrl.indexOf("{MBBOX}") !== -1) {
var xMin, xMax, yMin, yMax;
var boundsmercator;
initialResolution = 2 * Math.PI * 6378137 / 256; // == 156543.0339
originShift = 2 * Math.PI * 6378137 / 2.0; // == 20037508.34
res = initialResolution / Math.pow(2, level);
row = ((1 << level) - row - 1); // TMS
xMin = Math.round((column * 256 * res - originShift));
xMax = Math.round(((column + 1) * 256 * res - originShift));
yMin = Math.round((row * 256 * res - originShift));
yMax = Math.round(((row + 1) * 256 * res - originShift));
if (xMin > xMax) {
xMax = Math.round((column * 256 * res - originShift));
xMin = Math.round(((column + 1) * 256 * res - originShift));
}
if (yMin > yMax) {
yMax = Math.round((row * 256 * res - originShift));
yMin = Math.round(((row + 1) * 256 * res - originShift));
}
boundsmercator = xMin + "," + yMin + "," + xMax + "," + yMax;
finalFilterUrl = finalFilterUrl.replace("{MBBOX}", boundsmercator);
}
return finalFilterUrl;
}
//basemap gallary
});
}
function uuid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
function deleteGraphic() {
map.disableDoubleClickZoom();
graphicCount = graphicCount - 1;
if (graphicCount < 1) {
var r = confirm("Do you want to clear/remove trip");
if (r == true) { //pressed ok
if (window.location.hash.includes('#/trip?trp=')) {
angular.element(document.getElementById('mainController')).scope().deleteSelectedTrek('');
} else {
map.graphics.remove(selectedGraphic);
editToolbar.deactivate();
$('#btnDeleteGraphic').hide();
$('.userDashboard__drawTripActionGroup__saveTrip').hide();
$('.userDashboard__drawTripActionGroup__clearScreen').hide();
selectedGraphic = "";
graphicCount = 0;
}
} else {
editToolbar.deactivate();
$('#btnDeleteGraphic').hide();
selectedGraphic = "";
}
} else {
map.graphics.remove(selectedGraphic);
editToolbar.deactivate();
$('#btnDeleteGraphic').hide();
selectedGraphic = "";
}
}
function newUpdateGraphics() {
console.log(editOver)
$('#btnDeleteGraphic').hide();
$('#btnAddTrekInfo').hide();
if (editOver) {
editOver = false;
}
selectedGraphic = "";
//editToolbar.deactivate();
var geoArr = map.graphics.graphics;
myGlobalEditObj.editTrek(geoArr);
//updateGraphics(geoArr);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment