@vidro/map-handler 1.0.18 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.js CHANGED
@@ -1,150 +1,217 @@
1
- import { EventEmitter } from "events"
1
+ import { EventEmitter } from "events";
2
2
  import { iframeCommunicator } from "./shared/iframe-communicator";
3
3
  class Communicator extends EventEmitter {
4
-
5
- constructor(data){
4
+ constructor(data) {
6
5
  super();
7
- this.domId = 'map-frame';
8
- if(typeof window === 'undefined'){
6
+ this.domId = "map-frame";
7
+ if (typeof window === "undefined") {
9
8
  return;
10
- };
11
- if(typeof data.id==="string"){
9
+ }
10
+ if (typeof data.id === "string") {
12
11
  this.domId = data.id;
13
- }
14
- this.com = new iframeCommunicator(data)
15
- window.addEventListener("message", e => this.onMessageReceived(e));
12
+ }
13
+ this.com = new iframeCommunicator(data);
14
+ window.addEventListener("message", (e) => this.onMessageReceived(e));
16
15
  this.sessionToken = data.sessionToken;
17
16
  this.setMaxListeners(100);
18
17
  }
19
18
 
20
- onMessageReceived = e => {
21
- switch(e.data.type){
22
- case "onZoomChange": this.emitEvent("onZoomChange", e.data,e.data.domId); break;
23
- case "onCenterChange": this.emitEvent("onCenterChange", e.data,e.data.domId); break;
24
- case "geomAdded": this.emitEvent("geomAdded", e.data,e.data.domId); break;
25
- case "layers": this.emitEvent("layers", e.data,e.data.domId); break;
26
- case "geoJSONlayers": this.emitEvent("geoJSONlayers", e.data,e.data.domId); break;
27
- case "info": this.emitEvent("info", e.data,e.data.domId); break;
28
- case "error": this.emitEvent("error", e.data,e.data.domId); break;
29
- case "coordinates": this.emitEvent("coordinates", e.data,e.data.domId); break;
30
- case "activeLayer": this.emitEvent("activeLayer", e.data,e.data.domId); break;
31
- case "geolocation": this.emitEvent("geolocation", e.data,e.data.domId); break;
32
- case "WMSInfoAvailable": this.emitEvent("WMSInfoAvailable", e.data,e.data.domId); break;
33
- case "giswaterTiledBackgroundDisplayed": this.emitEvent("giswaterTiledBackgroundDisplayed", e.data,e.data.domId); break;
34
- case "giswaterTiledBackgroundAvailable": this.emitEvent("giswaterTiledBackgroundAvailable", e.data,e.data.domId); break;
35
- case "GiswaterLayerAvailableFilters": this.emitEvent("GiswaterLayerAvailableFilters", e.data,e.data.domId); break;
36
- case "loaded": this.emitEvent("loaded", e.data,e.data.domId); break;
37
- case "availableWMSLayers": this.emitEvent("availableWMSLayers", e.data,e.data.domId); break;
38
- case "layerElements": this.emitEvent("layerElements", e.data,e.data.domId); break;
39
- case "getToc": this.emitEvent("getToc", e.data,e.data.domId); break;
40
- case "capabilities": this.emitEvent("capabilities", e.data,e.data.domId); break;
41
- case "GiswaterFiltersApplied": this.emitEvent("GiswaterFiltersApplied", e.data,e.data.domId); break;
42
-
19
+ onMessageReceived = (e) => {
20
+ switch (e.data.type) {
21
+ case "onZoomChange":
22
+ this.emitEvent("onZoomChange", e.data, e.data.domId);
23
+ break;
24
+ case "onCenterChange":
25
+ this.emitEvent("onCenterChange", e.data, e.data.domId);
26
+ break;
27
+ case "geomAdded":
28
+ this.emitEvent("geomAdded", e.data, e.data.domId);
29
+ break;
30
+ case "layers":
31
+ this.emitEvent("layers", e.data, e.data.domId);
32
+ break;
33
+ case "geoJSONlayers":
34
+ this.emitEvent("geoJSONlayers", e.data, e.data.domId);
35
+ break;
36
+ case "info":
37
+ this.emitEvent("info", e.data, e.data.domId);
38
+ break;
39
+ case "error":
40
+ this.emitEvent("error", e.data, e.data.domId);
41
+ break;
42
+ case "coordinates":
43
+ this.emitEvent("coordinates", e.data, e.data.domId);
44
+ break;
45
+ case "activeLayer":
46
+ this.emitEvent("activeLayer", e.data, e.data.domId);
47
+ break;
48
+ case "geolocation":
49
+ this.emitEvent("geolocation", e.data, e.data.domId);
50
+ break;
51
+ case "WMSInfoAvailable":
52
+ this.emitEvent("WMSInfoAvailable", e.data, e.data.domId);
53
+ break;
54
+ case "giswaterTiledBackgroundDisplayed":
55
+ this.emitEvent(
56
+ "giswaterTiledBackgroundDisplayed",
57
+ e.data,
58
+ e.data.domId
59
+ );
60
+ break;
61
+ case "giswaterTiledBackgroundAvailable":
62
+ this.emitEvent(
63
+ "giswaterTiledBackgroundAvailable",
64
+ e.data,
65
+ e.data.domId
66
+ );
67
+ break;
68
+ case "GiswaterLayerAvailableFilters":
69
+ this.emitEvent("GiswaterLayerAvailableFilters", e.data, e.data.domId);
70
+ break;
71
+ case "loaded":
72
+ this.emitEvent("loaded", e.data, e.data.domId);
73
+ break;
74
+ case "availableWMSLayers":
75
+ this.emitEvent("availableWMSLayers", e.data, e.data.domId);
76
+ break;
77
+ case "layerElements":
78
+ this.emitEvent("layerElements", e.data, e.data.domId);
79
+ break;
80
+ case "getToc":
81
+ this.emitEvent("getToc", e.data, e.data.domId);
82
+ break;
83
+ case "capabilities":
84
+ this.emitEvent("capabilities", e.data, e.data.domId);
85
+ break;
86
+ case "GiswaterFiltersApplied":
87
+ this.emitEvent("GiswaterFiltersApplied", e.data, e.data.domId);
88
+ break;
89
+ case "MeasureEnd":
90
+ this.emitEvent("MeasureEnd", e.data, e.data.domId);
91
+ break;
43
92
  }
44
-
45
- }
93
+ };
46
94
 
47
- emitEvent = (type,data,domId)=>{
48
- if(domId===this.domId){
95
+ emitEvent = (type, data, domId) => {
96
+ if (domId === this.domId) {
49
97
  delete data.domId;
50
- this.emit(type, data);
98
+ this.emit(type, data);
51
99
  }
52
- }
100
+ };
53
101
 
54
102
  ZoomIn = () => {
55
103
  this.com.sendMessageToMap({
56
104
  type: "zoomIn",
57
105
  sessionToken: this.sessionToken,
58
- });
106
+ });
107
+ };
59
108
 
60
- }
61
-
62
109
  ZoomOut = () => {
63
110
  this.com.sendMessageToMap({
64
111
  type: "zoomOut",
65
112
  sessionToken: this.sessionToken,
66
- });
67
- }
113
+ });
114
+ };
68
115
 
69
116
  AddGeom = (geomtype) => {
70
117
  this.com.sendMessageToMap({
71
118
  type: "AddGeom",
72
119
  geom: geomtype,
73
120
  sessionToken: this.sessionToken,
74
- });
75
- }
121
+ });
122
+ };
76
123
 
77
- toggleLayer = (layer,properties) => {
78
- if(typeof properties==='undefined'){
124
+ toggleLayer = (layer, properties) => {
125
+ if (typeof properties === "undefined") {
79
126
  properties = {
80
127
  gutter: null,
81
128
  transparent: null,
82
- singletile: null
129
+ singletile: null,
130
+ layerType: null,
83
131
  };
84
132
  }
85
133
 
86
- if(properties.singletile!==null){
87
- if(typeof properties.singletile!=='boolean'){
134
+ if (properties.layerType !== null) {
135
+ if (
136
+ properties.layerType.toLowerCase() !== "wms" &&
137
+ properties.layerType.toLowerCase() !== "vector"
138
+ ) {
139
+ this.emit("error", { error: "layerType must be 'wms' or 'vector'" });
140
+ return;
141
+ }
142
+ }
143
+
144
+ if (
145
+ properties.singletile !== null &&
146
+ properties.layerType.toLowerCase() !== "vector"
147
+ ) {
148
+ if (typeof properties.singletile !== "boolean") {
88
149
  properties.singletile = null;
89
- this.emit("error",{error:"singleTile must be a Boolean"});
150
+ this.emit("error", { error: "singleTile must be a Boolean" });
90
151
  }
91
- }
92
- if(properties.gutter!=='' && properties.gutter!==null){
93
- if(isNaN(parseInt(properties.gutter))){
152
+ }
153
+ if (properties.gutter !== "" && properties.gutter !== null) {
154
+ if (isNaN(parseInt(properties.gutter))) {
94
155
  properties.gutter = null;
95
- this.emit("error",{error:"Gutter must be a number"});
156
+ this.emit("error", { error: "Gutter must be a number" });
96
157
  }
97
- if(properties.singletile){
158
+ if (properties.singletile) {
98
159
  properties.gutter = null;
99
- this.emit("error",{error:"Gutter can only be user with multitile layers; set singletile to false"});
160
+ this.emit("error", {
161
+ error:
162
+ "Gutter can only be user with multitile layers; set singletile to false",
163
+ });
100
164
  }
101
- }
165
+ }
102
166
 
103
- if(properties.transparent!==null){
104
- if(typeof properties.transparent!=='boolean'){
167
+ if (properties.transparent !== null) {
168
+ if (typeof properties.transparent !== "boolean") {
105
169
  properties.transparent = null;
106
- this.emit("error",{error:"transparent must be a Boolean"});
170
+ this.emit("error", { error: "transparent must be a Boolean" });
107
171
  }
108
- }
109
-
172
+ }
173
+
110
174
  this.com.sendMessageToMap({
111
175
  type: "toggleLayer",
112
176
  layer: layer,
113
- gutter: !isNaN(parseInt(properties.gutter)) ? parseInt(properties.gutter) : null,
177
+ gutter: !isNaN(parseInt(properties.gutter))
178
+ ? parseInt(properties.gutter)
179
+ : null,
114
180
  transparent: properties.transparent,
115
181
  singletile: properties.singletile,
182
+ layerType: properties.layerType.toLowerCase(),
116
183
  sessionToken: this.sessionToken,
117
- });
118
- }
184
+ });
185
+ };
119
186
 
120
187
  setActiveLayer = (layer) => {
121
188
  this.com.sendMessageToMap({
122
189
  type: "setActiveLayer",
123
190
  layer: layer,
124
191
  sessionToken: this.sessionToken,
125
- });
126
- }
192
+ });
193
+ };
127
194
 
128
195
  getActiveLayer = () => {
129
196
  this.com.sendMessageToMap({
130
197
  type: "getActiveLayer",
131
198
  sessionToken: this.sessionToken,
132
- });
133
- }
199
+ });
200
+ };
134
201
 
135
202
  loadWMSAvailableLayers = () => {
136
203
  this.com.sendMessageToMap({
137
204
  type: "loadWMSAvailableLayers",
138
205
  sessionToken: this.sessionToken,
139
- });
140
- }
206
+ });
207
+ };
141
208
 
142
209
  clear = () => {
143
210
  this.com.sendMessageToMap({
144
211
  type: "clear",
145
212
  sessionToken: this.sessionToken,
146
- });
147
- }
213
+ });
214
+ };
148
215
 
149
216
  Highlight = (options) => {
150
217
  this.com.sendMessageToMap({
@@ -152,36 +219,39 @@ class Communicator extends EventEmitter {
152
219
  geom: options.geom,
153
220
  zoom: options.zoom,
154
221
  sessionToken: this.sessionToken,
155
- });
156
- }
222
+ });
223
+ };
157
224
 
158
225
  zoomToExtent = () => {
159
226
  this.com.sendMessageToMap({
160
227
  type: "zoomToExtent",
161
228
  sessionToken: this.sessionToken,
162
- });
163
- }
229
+ });
230
+ };
164
231
 
165
- zoomToCoordinates= (lat,lon,zoomLevel) => {
166
- if(!isNaN(parseInt(zoomLevel))){
232
+ zoomToCoordinates = (lat, lon, zoomLevel) => {
233
+ if (!isNaN(parseInt(zoomLevel))) {
167
234
  this.com.sendMessageToMap({
168
235
  type: "zoomToCoordinates",
169
236
  sessionToken: this.sessionToken,
170
- coordinates:[lat,lon],
171
- zoomLevel: zoomLevel
172
- });
237
+ coordinates: [lat, lon],
238
+ zoomLevel: zoomLevel,
239
+ });
173
240
  }
174
- }
175
-
176
- infoFromCoordinates = (type,layer,hitTolerance,format) => {
177
- const _layer = (typeof layer=='undefined') ? null : layer
178
- const _hitTolerance = (typeof hitTolerance=='undefined' || !hitTolerance) ? 5 : parseInt(hitTolerance)
179
- const _format = (typeof format=='undefined') ? 'xml' : format.toLowerCase();
180
- if(_format!=="xml" && _format!=='json'){
241
+ };
242
+
243
+ infoFromCoordinates = (type, layer, hitTolerance, format) => {
244
+ const _layer = typeof layer == "undefined" ? null : layer;
245
+ const _hitTolerance =
246
+ typeof hitTolerance == "undefined" || !hitTolerance
247
+ ? 5
248
+ : parseInt(hitTolerance);
249
+ const _format = typeof format == "undefined" ? "xml" : format.toLowerCase();
250
+ if (_format !== "xml" && _format !== "json") {
181
251
  console.error("Format must be 'xml' or 'json");
182
252
  return;
183
253
  }
184
- if(isNaN(_hitTolerance)){
254
+ if (isNaN(_hitTolerance)) {
185
255
  console.error("hitTolerance must be a number");
186
256
  return;
187
257
  }
@@ -192,209 +262,262 @@ class Communicator extends EventEmitter {
192
262
  format: _format,
193
263
  hitTolerance: _hitTolerance,
194
264
  sessionToken: this.sessionToken,
195
- });
196
- }
265
+ });
266
+ };
197
267
 
198
- getElementsFromLayer= (layer,limit,format) => {
199
- const _format = (typeof format=='undefined') ? 'xml' : format.toLowerCase();
200
- if(_format!=="xml" && _format!=='json'){
268
+ getElementsFromLayer = (layer, limit, format) => {
269
+ const _format = typeof format == "undefined" ? "xml" : format.toLowerCase();
270
+ if (_format !== "xml" && _format !== "json") {
201
271
  console.error("Format must be 'xml' or 'json");
202
272
  return;
203
273
  }
204
- if(isNaN(limit)){
205
- console.error("Limit must be a number");
274
+ if (isNaN(limit)) {
275
+ console.error("Limit must be a number");
206
276
  return;
207
277
  }
208
- const _layer = (typeof layer=='undefined') ? null : layer
278
+ const _layer = typeof layer == "undefined" ? null : layer;
209
279
  this.com.sendMessageToMap({
210
280
  type: "getElementsFromLayer",
211
281
  layer: _layer,
212
- limit: (typeof limit!='undefined') ? parseInt(limit) : 100,
282
+ limit: typeof limit != "undefined" ? parseInt(limit) : 100,
213
283
  format: format,
214
284
  sessionToken: this.sessionToken,
215
- });
216
- }
285
+ });
286
+ };
217
287
 
218
288
  Geolocalize = (toggle) => {
219
289
  this.com.sendMessageToMap({
220
290
  type: "Geolocalize",
221
291
  toggle: toggle,
222
292
  sessionToken: this.sessionToken,
223
- });
224
- }
293
+ });
294
+ };
225
295
 
226
- toggleGiswaterTiled = (toggle,tiled) => {
296
+ toggleGiswaterTiled = (toggle, tiled) => {
227
297
  this.com.sendMessageToMap({
228
298
  type: "toggleGiswaterTiled",
229
299
  toggle: toggle,
230
300
  tiled: tiled,
231
301
  sessionToken: this.sessionToken,
232
- });
233
- }
302
+ });
303
+ };
234
304
 
235
- reloadDisplayedLayers = ()=>{
305
+ reloadDisplayedLayers = () => {
236
306
  return this.com.sendMessageToMap({
237
307
  type: "reloadDisplayedLayers",
238
308
  sessionToken: this.sessionToken,
239
- });
240
- }
309
+ });
310
+ };
241
311
 
242
- addGeoJSON = (geoJSON,options, name)=>{
243
- if(geoJSON){
312
+ addGeoJSON = (geoJSON, options, name) => {
313
+ if (geoJSON) {
244
314
  return this.com.sendMessageToMap({
245
315
  type: "addGeoJSON",
246
316
  geoJSON: geoJSON,
247
- options: (typeof options!='undefined') ? options : {fillcolor:null,strokecolor:null},
248
- name: name ? name: Math.random().toString(36).substring(7),
317
+ options:
318
+ typeof options != "undefined"
319
+ ? options
320
+ : { fillcolor: null, strokecolor: null },
321
+ name: name ? name : Math.random().toString(36).substring(7),
249
322
  sessionToken: this.sessionToken,
250
- });
251
- }else{
252
- this.emit("error",{error:"No geoJSON data"});
323
+ });
324
+ } else {
325
+ this.emit("error", { error: "No geoJSON data" });
253
326
  return;
254
327
  }
255
- }
328
+ };
256
329
 
257
- clearGeoJSON = ()=>{
330
+ clearGeoJSON = () => {
258
331
  return this.com.sendMessageToMap({
259
332
  type: "clearGeoJSON",
260
333
  sessionToken: this.sessionToken,
261
- });
262
- }
334
+ });
335
+ };
263
336
 
264
- removeGeoJSONLayer = (name)=>{
265
- if(name){
337
+ removeGeoJSONLayer = (name) => {
338
+ if (name) {
266
339
  return this.com.sendMessageToMap({
267
340
  type: "removeGeoJSONLayer",
268
341
  name: name,
269
342
  sessionToken: this.sessionToken,
270
- });
271
- }else{
272
- this.emit("error",{error:"No geoJSON data"});
343
+ });
344
+ } else {
345
+ this.emit("error", { error: "No geoJSON data" });
273
346
  return;
274
347
  }
275
- }
276
-
277
- setGiswaterFilters = (filters)=>{
348
+ };
349
+
350
+ setGiswaterFilters = (filters) => {
278
351
  var filtersJson = filters;
279
- if(filters){
280
- if(typeof filters!="object"){
281
- filters = filters.trim()
282
- filters = filters.replace(/^\s+|\s+$/g, '');
283
- filters = filters.replace(/\\/g, '');
284
- try{
285
- filtersJson = JSON.parse(filters);
286
- }catch(e){
287
- this.emit("error",{error:"Filters is not a valid JSON"});
352
+ if (filters) {
353
+ if (typeof filters != "object") {
354
+ filters = filters.trim();
355
+ filters = filters.replace(/^\s+|\s+$/g, "");
356
+ filters = filters.replace(/\\/g, "");
357
+ try {
358
+ filtersJson = JSON.parse(filters);
359
+ } catch (e) {
360
+ this.emit("error", { error: "Filters is not a valid JSON" });
288
361
  return;
289
362
  }
290
363
  }
291
-
364
+
292
365
  return this.com.sendMessageToMap({
293
366
  type: "setGiswaterFilters",
294
367
  filters: filtersJson,
295
368
  sessionToken: this.sessionToken,
296
- });
297
- }else{
298
- this.emit("error",{error:"No filters"});
369
+ });
370
+ } else {
371
+ this.emit("error", { error: "No filters" });
299
372
  return;
300
373
  }
301
- }
374
+ };
302
375
 
303
- getGiswaterLayerAvailableFilters = (layer_name)=>{
304
- if(layer_name){
305
- return this.com.sendMessageToMap({
376
+ getGiswaterLayerAvailableFilters = (layer_name) => {
377
+ if (layer_name) {
378
+ return this.com.sendMessageToMap({
306
379
  type: "getGiswaterLayerAvailableFilters",
307
380
  name: layer_name,
308
381
  sessionToken: this.sessionToken,
309
- });
310
- }else{
311
- this.emit("error",{error:"No layer_name"});
382
+ });
383
+ } else {
384
+ this.emit("error", { error: "No layer_name" });
312
385
  return;
313
386
  }
314
- }
387
+ };
315
388
 
316
- getToc = ()=>{
389
+ getToc = () => {
317
390
  return this.com.sendMessageToMap({
318
391
  type: "getToc",
319
392
  sessionToken: this.sessionToken,
320
- });
321
- }
393
+ });
394
+ };
322
395
 
323
- setDebug = (what) =>{
324
- if(!isNaN(parseInt(what))){
396
+ setDebug = (what) => {
397
+ if (!isNaN(parseInt(what))) {
325
398
  this.com.sendMessageToMap({
326
399
  type: "setDebug",
327
400
  what: what,
328
401
  sessionToken: this.sessionToken,
329
402
  });
330
- }else{
403
+ } else {
331
404
  console.error("Debug is not a integer");
332
405
  }
333
- }
406
+ };
334
407
 
335
- setCustomColors = (properties)=>{
408
+ setCustomColors = (properties) => {
336
409
  //validate data
337
- if(typeof properties!=='object'){
410
+ if (typeof properties !== "object") {
338
411
  console.error("properties is not an object");
339
412
  return;
340
413
  }
341
- if(properties.hasOwnProperty('geom_stroke_width')){
342
- if(isNaN(parseInt(properties.geom_stroke_width))){
414
+ if (properties.hasOwnProperty("geom_stroke_width")) {
415
+ if (isNaN(parseInt(properties.geom_stroke_width))) {
343
416
  console.error("geom_stroke_width is not an number");
344
417
  return;
345
- }else{
418
+ } else {
346
419
  properties.geom_stroke_width = parseInt(properties.geom_stroke_width);
347
420
  }
348
- }else{
421
+ } else {
349
422
  properties.geom_stroke_width = 1;
350
423
  }
351
- if(properties.hasOwnProperty('geom_radius')){
352
- if(isNaN(parseInt(properties.geom_radius))){
424
+ if (properties.hasOwnProperty("geom_radius")) {
425
+ if (isNaN(parseInt(properties.geom_radius))) {
353
426
  console.error("geom_stroke_width is not an number");
354
427
  return;
355
- }else{
428
+ } else {
356
429
  properties.geom_radius = parseInt(properties.geom_radius);
357
430
  }
358
- }else{
431
+ } else {
359
432
  properties.geom_radius = 4;
360
433
  }
361
434
 
362
- if(properties.hasOwnProperty('geom_shape')){
363
- if(properties.geom_shape!=="circle" && properties.geom_shape!=="square"){
364
- properties.geom_shape = 'circle';
435
+ if (properties.hasOwnProperty("geom_shape")) {
436
+ if (
437
+ properties.geom_shape !== "circle" &&
438
+ properties.geom_shape !== "square"
439
+ ) {
440
+ properties.geom_shape = "circle";
365
441
  console.error("geom_shape must be either 'circle' or 'square'");
366
442
  }
367
443
  }
368
444
  this.com.sendMessageToMap({
369
- type: "setCustomColors",
370
- properties: properties,
371
- sessionToken: this.sessionToken,
445
+ type: "setCustomColors",
446
+ properties: properties,
447
+ sessionToken: this.sessionToken,
372
448
  });
373
- }
449
+ };
374
450
 
375
- changeBackground = (newBackground)=>{
451
+ changeBackground = (newBackground) => {
376
452
  return this.com.sendMessageToMap({
377
453
  type: "changeBackground",
378
454
  sessionToken: this.sessionToken,
379
- newBackground: newBackground
380
- });
381
- }
455
+ newBackground: newBackground,
456
+ });
457
+ };
382
458
 
383
- centerMap = (coordinates)=>{
459
+ centerMap = (coordinates) => {
384
460
  //validate data
385
- if(typeof coordinates!=='object'){
461
+ if (typeof coordinates !== "object") {
386
462
  console.error("properties is not an object");
387
463
  return;
388
464
  }
389
465
  return this.com.sendMessageToMap({
390
466
  type: "centerMap",
391
467
  sessionToken: this.sessionToken,
392
- coordinates
393
- });
468
+ coordinates: coordinates,
469
+ });
470
+ };
471
+
472
+ drawGeometryInLayer = (uuid, layerName, geom_astext, label, style) => {
473
+ return this.com.sendMessageToMap({
474
+ type: "drawGeometryInLayer",
475
+ sessionToken: this.sessionToken,
476
+ uuid,
477
+ layerName,
478
+ geom_astext,
479
+ label,
480
+ style,
481
+ });
482
+ };
483
+
484
+ removeGeometryFromLayer = (uuid, layerName) => {
485
+ return this.com.sendMessageToMap({
486
+ type: "removeGeometryFromLayer",
487
+ sessionToken: this.sessionToken,
488
+ uuid,
489
+ layerName,
490
+ });
491
+ };
492
+
493
+ initMeasure = (type,textStart,textContinue)=>{
494
+ if(type!=='line' && type!=='area'){
495
+ console.error( );
496
+ return;
497
+ }
498
+ let text = null;
499
+ if(textStart && textContinue){
500
+
501
+ text = {
502
+ textStart: textStart,
503
+ textContinue: textContinue,
504
+ }
505
+ }
506
+
507
+ return this.com.sendMessageToMap({
508
+ type: "initMeasure",
509
+ sessionToken: this.sessionToken,
510
+ measure: type,
511
+ text: text ? text: null,
512
+ });
394
513
  }
395
514
 
515
+ cancelMeasure= ()=>{
516
+ return this.com.sendMessageToMap({
517
+ type: "cancelMeasure",
518
+ sessionToken: this.sessionToken,
519
+ });
520
+ }
396
521
  }
397
522
 
398
- export {
399
- Communicator,
400
- }
523
+ export { Communicator };