Retour à la documentation
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/on','spw/api/DataMapService',
'spw/api/SpwGraphicsLayer', // parce que le GraphicsLayer d'esri modifie l'id automatiquement
'spw/api/ConfigLoader', "spw/api/GeometryConverter",
"spw/api/MessageManager","esri/graphic", "esri/SpatialReference"
],
function(declare, lang, array, on, DataMapService, SpwGraphicsLayer, ConfigLoader,
GeometryConverter, MessageManager, Graphic, SpatialReference) {
/**
* @class spw.api.DrawMapService
* @classdesc Service du viewer permettant de dessiner sur la carte
* @extends {spw.api.MapService}
*/
var DrawMapService = declare('spw.api.DrawMapService', [DataMapService], /** @lends spw.api.DrawMapService.prototype */ {
// label: 'Renommer',
// hasLegend: false,
// inTOC: true,
// minScale: 0,
// maxScale: 0,
// loaded: false,
// visible: true,
// toLoad: true,
//
// newLayer: true,
// currentDrawing: false,
// constructor: function(opts) {
// lang.mixin(this, opts);
// this._propertiesToKeep.push('graphics');
// },
/**
* Crée le layer Esri sur base de la configuration du MapService.
* @memberOf spw.api.MapService
*/
// createMapLayer: function() {
// this.inherited(arguments);
// var opts = {
// id: this.serviceId,
// minScale: 0,
// maxScale: 0,
// spwMap: this.spwMap,
// graphicsJSON: this.graphicsJSON
// };
//
// if (this.graphics) {
// opts.graphics = this.graphics;
// delete this.graphics;
// }
//
// this.layer = new SpwGraphicsLayer(opts);
//
// this.loaded = true;
//
//
// if (this.geoJsonInfo) {
// this.importData(this.geoJsonInfo);
// }
// }
// reset: function() {
// this.graphics = this.layer.graphicsToJson();
//
// this.inherited(arguments);
// },
// importData: function(geoJsonFeatures) {
// geoJsonFeatures = JSON.parse(geoJsonFeatures);
// if (geoJsonFeatures.type == "FeatureCollection") {
// var features = geoJsonFeatures.features;
// array.forEach(features, lang.hitch(this, function(feature) {
// var esriGeom = GeometryConverter.geoJSONToEsri(feature.geometry);
// esriGeom.spatialReference = new SpatialReference({ "wkid": 31370 });
// var graph = new Graphic(esriGeom, this.spwMap.getDefaultSymbol(feature));
// this.get('layer').graphics.push(graph);
// }))
// }
// console.log('graphics:', this.get('layer').graphics);
// },
//
// exportData: function() {
// var layer = this.get('layer');
// if (layer) {
// var graphics = layer.graphics;
// if (graphics.length > 0) {
// var geoJsonObject = {type: 'FeatureCollection', features: []};
// geoJsonObject.features = array.map(graphics, lang.hitch(this, function(g) {
// return GeometryConverter.esriToGeoJSON(g);
// }));
// var blob = new Blob([JSON.stringify(geoJsonObject)], {type: "attachment/file"});
// var reader = new FileReader();
// reader.onloadend = lang.hitch(this, function() {
// var resultUrl = reader.result;
// var link = document.createElement('a');
// link.setAttribute('href', resultUrl);
// link.setAttribute('download', this.label + '.json');
// link.click();
// });
// reader.onerror = lang.hitch(this, function() {
// MessageManager.getInstance().notifyError("Une erreur est survenue lors de l'export de votre donnée, veuillez réessayer.");
// });
// reader.readAsDataURL(blob);
// } else {
// MessageManager.getInstance().notifyInfo("Il n'y a aucune feature à exporter.");
// }
// }
// },
// addToMap: function(esriMap) {
// this.get('layer').visible = this.get('visible') != null ? this.get('visible') : true;
//
// var handler = null;
//
// handler = esriMap.on("layer-add-result", lang.hitch(this, function(evt) {
// if(evt.layer == this.get('layer')){
// if(handler) {
// handler.remove();
// }
// this.set("added", true);
//
// if (this.spwMap) {
// this.spwMap.mapServiceAddedToMap(this);
// }
// }
// }));
//
// esriMap.addLayer(this.get('layer'));
// this.set("loaded", true);
//
// if (this.layer.graphics) {
// this.layer.jsonToGraphics(this.layer.graphicsToJson());
// }
// else if (this.graphics) {
// this.layer.jsonToGraphics(this.graphics);
// }
//
// for(var i = 0; i < this.clusterLayers.length; i++) {
// esriMap.addLayer(this.clusterLayers[i].clusterLayer);
// }
//
// for(var i = 0; i < this.heatLayers.length; i++) {
// esriMap.addLayer(this.heatLayers[i].heatLayer);
// }
// },
// getServiceConfig: function(toKeep) {
// var cfg = this.inherited(arguments);
//
// toKeep = toKeep || this._propertiesToKeep;
//
// if (toKeep.indexOf('graphics')) {
// cfg.graphics = this.get('layer').graphicsToJson();
// }
//
// return cfg;
// }
// setGraphics: function(graphics) {
// if (graphics == null) {
// return;
// }
//
// this.layer.jsonToGraphics(graphics);
// }
});
return DrawMapService;
});