@vidro/map-handler 1.0.4 → 1.0.8
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/README.md +326 -118
- package/dist/map-handler.js +1 -1
- package/doc/giswater.png +0 -0
- package/doc/giswaterInfo.png +0 -0
- package/doc/giswaterInfoApi.png +0 -0
- package/doc/giswatergeojson.png +0 -0
- package/doc/multiTile.png +0 -0
- package/doc/multiTileNoGutter.png +0 -0
- package/doc/togglelayergiswater.png +0 -0
- package/doc/vidromaps-basic.png +0 -0
- package/examples/externalwms/index.js +20 -0
- package/examples/externalwms/index.php +88 -0
- package/examples/full/apidemo.js +54 -11
- package/examples/full/cachedToken.dat +1 -1
- package/examples/full/cachedTokenData.dat +1 -1
- package/examples/full/index.php +37 -18
- package/examples/full/tester.js +177 -13
- package/examples/integration/tool/css/dist/home.css.min.css +0 -0
- package/examples/integration/tool/css/dist/home.min.css +1 -0
- package/examples/integration/tool/css/dist/home.min.css.map +10 -0
- package/examples/integration/tool/css/dist/style-login.css.min.css +0 -0
- package/examples/integration/tool/css/dist/style-login.min.css +1 -0
- package/examples/integration/tool/css/dist/style-login.min.css.map +10 -0
- package/examples/integration/tool/css/dist/style.css.min.css +0 -0
- package/examples/integration/tool/css/dist/style.min.css +1 -0
- package/examples/integration/tool/css/dist/style.min.css.map +23 -0
- package/examples/integration/tool/css/master/_bottom-sheet-2.scss +103 -0
- package/examples/integration/tool/css/master/_bottom-sheet.scss +142 -0
- package/examples/integration/tool/css/master/_colors.scss +35 -0
- package/examples/integration/tool/css/master/_dropdown-form.scss +167 -0
- package/examples/integration/tool/css/master/_forms.scss +416 -0
- package/examples/integration/tool/css/master/_header.scss +134 -0
- package/examples/integration/tool/css/master/_menu-toc.scss +135 -0
- package/examples/integration/tool/css/master/_menu-tools.scss +187 -0
- package/examples/integration/tool/css/master/_mixins.scss +42 -0
- package/examples/integration/tool/css/master/_notifyjs.scss +39 -0
- package/examples/integration/tool/css/master/_ol-map-controls.scss +117 -0
- package/examples/integration/tool/css/master/_simplelightbox.scss +287 -0
- package/examples/integration/tool/css/master/_toc-config.scss +28 -0
- package/examples/integration/tool/css/master/_toc-layouts.scss +173 -0
- package/examples/integration/tool/css/master/_tooltip.scss +34 -0
- package/examples/integration/tool/css/master/home.scss +266 -0
- package/examples/integration/tool/css/master/style-login.scss +240 -0
- package/examples/integration/tool/css/master/style.scss +166 -0
- package/examples/integration/tool/img/doc-gallery-placeholder.svg +3 -0
- package/examples/integration/tool/img/home/ic_calendar-clock.svg +1 -0
- package/examples/integration/tool/img/home/ic_caret-down.svg +1 -0
- package/examples/integration/tool/img/home/ic_cog.svg +1 -0
- package/examples/integration/tool/img/home/ic_marker.svg +1 -0
- package/examples/integration/tool/img/home/ic_play-circle.svg +1 -0
- package/examples/integration/tool/img/home/ic_power.svg +1 -0
- package/examples/integration/tool/img/home/ic_squares.svg +1 -0
- package/examples/integration/tool/img/home/ic_user-pointer.svg +1 -0
- package/examples/integration/tool/img/home/ic_user-square.svg +1 -0
- package/examples/integration/tool/img/home/logo_footer.svg +1 -0
- package/examples/integration/tool/img/ic/accessControl.svg +1 -0
- package/examples/integration/tool/img/ic/account-location.svg +1 -0
- package/examples/integration/tool/img/ic/actionDelete.svg +64 -0
- package/examples/integration/tool/img/ic/actionOpen.svg +64 -0
- package/examples/integration/tool/img/ic/addFile.svg +100 -0
- package/examples/integration/tool/img/ic/addFile_off.svg +102 -0
- package/examples/integration/tool/img/ic/arrow-left.svg +1 -0
- package/examples/integration/tool/img/ic/arrow-right-drop-circle-outline.svg +1 -0
- package/examples/integration/tool/img/ic/bt_add_photo.svg +3 -0
- package/examples/integration/tool/img/ic/bug.svg +1 -0
- package/examples/integration/tool/img/ic/caret-down-bottomsheet.svg +3 -0
- package/examples/integration/tool/img/ic/checkbox-blank-outline-grey.svg +8 -0
- package/examples/integration/tool/img/ic/checkbox-blank-outline-white.svg +8 -0
- package/examples/integration/tool/img/ic/checkbox-blank-outline.svg +1 -0
- package/examples/integration/tool/img/ic/checkbox-marked-outline-grey.svg +8 -0
- package/examples/integration/tool/img/ic/checkbox-marked-outline-white.svg +8 -0
- package/examples/integration/tool/img/ic/checkbox-marked-outline.svg +1 -0
- package/examples/integration/tool/img/ic/chevron-down-grey.svg +7 -0
- package/examples/integration/tool/img/ic/chevron-down-white.svg +7 -0
- package/examples/integration/tool/img/ic/chevron-down.svg +1 -0
- package/examples/integration/tool/img/ic/chevron-right-grey.svg +7 -0
- package/examples/integration/tool/img/ic/chevron-right-white.svg +7 -0
- package/examples/integration/tool/img/ic/chevron-right.svg +1 -0
- package/examples/integration/tool/img/ic/comment-text-outline.svg +1 -0
- package/examples/integration/tool/img/ic/cookie.svg +1 -0
- package/examples/integration/tool/img/ic/delete.svg +1 -0
- package/examples/integration/tool/img/ic/dot.svg +1 -0
- package/examples/integration/tool/img/ic/dump.svg +1 -0
- package/examples/integration/tool/img/ic/e.svg +9 -0
- package/examples/integration/tool/img/ic/eye-off.svg +1 -0
- package/examples/integration/tool/img/ic/eye.svg +1 -0
- package/examples/integration/tool/img/ic/forbidden.svg +1 -0
- package/examples/integration/tool/img/ic/form-title-1.svg +3 -0
- package/examples/integration/tool/img/ic/group.svg +1 -0
- package/examples/integration/tool/img/ic/hamburger.svg +1 -0
- package/examples/integration/tool/img/ic/ic-users.svg +1 -0
- package/examples/integration/tool/img/ic/ic_dropdown-form-close.svg +3 -0
- package/examples/integration/tool/img/ic/ic_dropdown-form-link.svg +3 -0
- package/examples/integration/tool/img/ic/ic_feature-edit-cancel.svg +14 -0
- package/examples/integration/tool/img/ic/ic_feature-edit-save.svg +14 -0
- package/examples/integration/tool/img/ic/ic_gallery-item-delete.svg +3 -0
- package/examples/integration/tool/img/ic/ic_gallery-item-view.svg +3 -0
- package/examples/integration/tool/img/ic/ic_gps.svg +3 -0
- package/examples/integration/tool/img/ic/ic_search.svg +5 -0
- package/examples/integration/tool/img/ic/ic_selector_fechas.svg +63 -0
- package/examples/integration/tool/img/ic/ic_zoom-to-extent.svg +3 -0
- package/examples/integration/tool/img/ic/icon_reminder.png +0 -0
- package/examples/integration/tool/img/ic/image-gallery-placeholder.svg +55 -0
- package/examples/integration/tool/img/ic/imaqua.svg +87 -0
- package/examples/integration/tool/img/ic/incidencia.svg +77 -0
- package/examples/integration/tool/img/ic/info_multi_selection.svg +230 -0
- package/examples/integration/tool/img/ic/layers.svg +1 -0
- package/examples/integration/tool/img/ic/map-marker.svg +3 -0
- package/examples/integration/tool/img/ic/map.svg +1 -0
- package/examples/integration/tool/img/ic/measure_area.svg +111 -0
- package/examples/integration/tool/img/ic/minus.svg +7 -0
- package/examples/integration/tool/img/ic/notification.svg +1 -0
- package/examples/integration/tool/img/ic/offline.svg +3 -0
- package/examples/integration/tool/img/ic/online.svg +1 -0
- package/examples/integration/tool/img/ic/pencil.svg +3 -0
- package/examples/integration/tool/img/ic/plus.svg +1 -0
- package/examples/integration/tool/img/ic/polygon_selection.svg +68 -0
- package/examples/integration/tool/img/ic/power.svg +1 -0
- package/examples/integration/tool/img/ic/remoteLocalized.svg +4 -0
- package/examples/integration/tool/img/ic/remoteStartLocalize.svg +4 -0
- package/examples/integration/tool/img/ic/ruler.svg +125 -0
- package/examples/integration/tool/img/ic/selection-plus.svg +10 -0
- package/examples/integration/tool/img/ic/selection.svg +1 -0
- package/examples/integration/tool/img/ic/settings.svg +1 -0
- package/examples/integration/tool/img/ic/sort.svg +1 -0
- package/examples/integration/tool/img/ic/sort_asc.svg +1 -0
- package/examples/integration/tool/img/ic/sort_desc.svg +1 -0
- package/examples/integration/tool/img/ic/spreadsheet.svg +3 -0
- package/examples/integration/tool/img/ic/times.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/AB3.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/AB4.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/IC1.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB1.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB11.svg +5 -0
- package/examples/integration/tool/img/ic/toolbar/TB2.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB20.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB21.svg +54 -0
- package/examples/integration/tool/img/ic/toolbar/TB3.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB31.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB32.svg +57 -0
- package/examples/integration/tool/img/ic/toolbar/TB4.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB5.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB6.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB7.svg +1 -0
- package/examples/integration/tool/img/ic/toolbar/TB8.svg +1 -0
- package/examples/integration/tool/img/ic/tools.svg +28 -0
- package/examples/integration/tool/img/ic/user.svg +1 -0
- package/examples/integration/tool/img/ic/vector-polygon.svg +1 -0
- package/examples/integration/tool/img/ic/visit_manager.svg +135 -0
- package/examples/integration/tool/img/logo-footer-login.png +0 -0
- package/examples/integration/tool/img/logo-footer.png +0 -0
- package/examples/integration/tool/img/logo-header-login.png +0 -0
- package/examples/integration/tool/img/logo-header-login@2x.png +0 -0
- package/examples/integration/tool/img/logo-header-login@3x.png +0 -0
- package/examples/integration/tool/img/logo-header.png +0 -0
- package/examples/integration/tool/img/logo-header@2x.png +0 -0
- package/examples/integration/tool/img/logo-header@3x.png +0 -0
- package/examples/integration/tool/img/logo_project.png +0 -0
- package/examples/integration/tool/img/photo-gallery-placeholder.svg +3 -0
- package/examples/integration/tool/img/pixel.png +0 -0
- package/examples/integration/tool/index.html +228 -0
- package/examples/integration/tool/js/demo.js +238 -0
- package/examples/integration/tool/js/interface.js +147 -0
- package/examples/integration/tool/js/jquery.js +4 -0
- package/examples/integration/vanguardia.html +6636 -0
- package/examples/multipleIframes/index.js +82 -0
- package/examples/multipleIframes/index.php +52 -0
- package/examples/serverLess/dist/index.23420cfa.js +2973 -0
- package/examples/serverLess/dist/index.23420cfa.js.map +1 -0
- package/examples/serverLess/dist/index.91b6cacc.js +2 -0
- package/examples/serverLess/dist/index.91b6cacc.js.map +1 -0
- package/examples/serverLess/dist/index.html +1 -0
- package/examples/serverLess/index.html +39 -0
- package/examples/serverLess/main.js +113 -0
- package/examples/serverLess/package.json +18 -0
- package/examples/serverLess/readme.md +41 -0
- package/examples/simple/index.html +1 -1
- package/examples/simple/simple.js +63 -65
- package/examples/vidromap/index.js +20 -0
- package/examples/vidromap/index.php +48 -51
- package/flows.md +73 -0
- package/package.json +2 -2
- package/src/index.js +156 -42
- package/src/shared/iframe-communicator.js +12 -5
- package/examples/vidromap/vidromap.js +0 -87
package/README.md
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
# Map Handler
|
|
1
|
+
# Map Handler
|
|
2
2
|
|
|
3
|
-
#### Version 1.0.
|
|
3
|
+
#### Version 1.0.8 - January 2022
|
|
4
4
|
|
|
5
5
|
Tool to achieve the easiest way of communication with the map iframe.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
- [Installation](#Installation)
|
|
8
|
+
- [Events](#Events)
|
|
9
|
+
- [Methods](#Methods)
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Some of the multiple use case flows are documented in [flows.md](flows.md)
|
|
12
|
+
|
|
13
|
+
## TL;DR
|
|
12
14
|
|
|
13
15
|
```
|
|
14
16
|
<html>
|
|
15
17
|
<body>
|
|
16
18
|
<iframe id="map-frame" name="map-frame" src=""></iframe>
|
|
17
19
|
<button id="btZoomIn">Zoom In</button>
|
|
18
|
-
<script src="https://unpkg.com/@vidro/map-handler@1.0.
|
|
20
|
+
<script src="https://unpkg.com/@vidro/map-handler@1.0.5/dist/map-handler.js"></script> -->
|
|
19
21
|
<script>
|
|
20
22
|
var loadMapReq = new XMLHttpRequest();
|
|
21
23
|
loadMapReq.addEventListener("load", function(){
|
|
22
24
|
communicator = new VidroMaps.Communicator({this.responseText.message.sessionToken});
|
|
23
25
|
document.querySelector("#map-frame").src = `${this.responseText.message.iframe}?sessionToken=${this.responseText.message.sessionToken}`;
|
|
24
|
-
|
|
26
|
+
|
|
25
27
|
document.querySelector("#btZoomIn").addEventListener("click", function(){
|
|
26
28
|
communicator.ZoomIn();
|
|
27
29
|
});
|
|
28
|
-
|
|
30
|
+
|
|
29
31
|
}
|
|
30
32
|
loadMapReq.open("GET", "http://APIURL/map/PROJECT_ID",true);
|
|
31
33
|
loadMapReq.setRequestHeader('Content-type', 'application/json');
|
|
@@ -36,13 +38,13 @@ Tool to achieve the easiest way of communication with the map iframe.
|
|
|
36
38
|
</html>
|
|
37
39
|
```
|
|
38
40
|
|
|
39
|
-
## Installation
|
|
41
|
+
## Installation
|
|
40
42
|
|
|
41
|
-
### 0. Pre-requisites
|
|
43
|
+
### 0. Pre-requisites
|
|
42
44
|
|
|
43
|
-
You should have one iframe already created on the DOM with the attributes `name="map-frame"`.
|
|
45
|
+
You should have one iframe already created on the DOM with the attributes `name="map-frame" id="map-frame"`.
|
|
44
46
|
|
|
45
|
-
### 1. Include the library:
|
|
47
|
+
### 1. Include the library:
|
|
46
48
|
|
|
47
49
|
You can do this inyecting directly to window:
|
|
48
50
|
|
|
@@ -55,8 +57,7 @@ Or if you're working with NPM / ES6:
|
|
|
55
57
|
...
|
|
56
58
|
import { Communicator } from "@vidro/map-handler";
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
### 2. Instance the communicator with the sessionToken in options object: ###
|
|
60
|
+
### 2. Instance the communicator with the sessionToken in options object:
|
|
60
61
|
|
|
61
62
|
If you are inyecting into window:
|
|
62
63
|
|
|
@@ -66,30 +67,48 @@ If you are inyecting into window:
|
|
|
66
67
|
|
|
67
68
|
Or if you're working with NPM / ES6:
|
|
68
69
|
|
|
69
|
-
const communicator = new
|
|
70
|
+
const communicator = new Communicator({
|
|
70
71
|
sessionToken: "sessionToken"
|
|
71
72
|
});
|
|
72
|
-
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
### Logs
|
|
75
|
+
|
|
76
|
+
If you want to see `console.logs`, you can activate logs with `setDebug` method. Once map is loaded, invoke this method. Will create or remove a cookie. After calling `setDebug` reload the map.
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
Logs are deactivated by default.
|
|
79
|
+
|
|
80
|
+
`setDebug(debug)`
|
|
81
|
+
|
|
82
|
+
>E.G.
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
//activate
|
|
86
|
+
setDebug(1);
|
|
87
|
+
|
|
88
|
+
//deactivate
|
|
89
|
+
setDebug(0);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Events
|
|
93
|
+
|
|
94
|
+
### How to listen
|
|
77
95
|
|
|
78
96
|
communicator.on("onZoomChange", function(data){
|
|
79
97
|
console.log("onZoomChange event",data);
|
|
80
98
|
});
|
|
99
|
+
|
|
81
100
|
|
|
82
|
-
### Available events
|
|
101
|
+
### Available events
|
|
83
102
|
|
|
84
|
-
##### onZoomChange
|
|
103
|
+
##### onZoomChange
|
|
85
104
|
|
|
86
105
|
Notifies zoom level changed
|
|
87
106
|
|
|
88
|
-
##### geomAdded
|
|
107
|
+
##### geomAdded
|
|
89
108
|
|
|
90
109
|
Notifies geometry added to map, as string
|
|
91
110
|
|
|
92
|
-
>E.G.
|
|
111
|
+
> E.G.
|
|
93
112
|
|
|
94
113
|
```
|
|
95
114
|
POINT(418925 4577135)
|
|
@@ -98,65 +117,94 @@ POLYGON((418391.8715694032 4576832.484383419,418721.82301488414 4577299.66760832
|
|
|
98
117
|
|
|
99
118
|
MULTILINESTRING((419268.8979576373 4577019.482027252,419146.6929889547 4577457.250226778,418798.40365705814 4577415.776056751))
|
|
100
119
|
```
|
|
120
|
+
##### loaded
|
|
121
|
+
|
|
122
|
+
Notifies when map or layers are loaded.
|
|
123
|
+
|
|
124
|
+
There're two types of events:
|
|
125
|
+
|
|
126
|
+
- `map` is dispatched when map (with background) is loaded.
|
|
127
|
+
- `layer` is dispatched when a layer is loaded
|
|
128
|
+
|
|
129
|
+
> `map` E.G:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
{what:'map'}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
> `layer` E.G:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
{what:'layer'
|
|
139
|
+
name:'Arc'}
|
|
140
|
+
```
|
|
101
141
|
|
|
102
|
-
##### layers
|
|
142
|
+
##### layers
|
|
103
143
|
|
|
104
144
|
Notifies an array of displayed layers
|
|
105
145
|
|
|
106
|
-
##### geoJSONlayers
|
|
146
|
+
##### geoJSONlayers
|
|
107
147
|
|
|
108
148
|
Notifies an array of displayed GeoJSON layers
|
|
109
149
|
|
|
110
|
-
##### activeLayer
|
|
150
|
+
##### activeLayer
|
|
111
151
|
|
|
112
152
|
Notifies wich layer is marked as active
|
|
113
153
|
|
|
154
|
+
##### WMSInfoAvailable
|
|
155
|
+
|
|
156
|
+
Notifies when WMS is available for this map
|
|
157
|
+
|
|
158
|
+
##### availableWMSLayers
|
|
114
159
|
|
|
115
|
-
|
|
160
|
+
List of available layers from WMS server
|
|
161
|
+
|
|
162
|
+
##### coordinates
|
|
116
163
|
|
|
117
164
|
Notifies clicked coordinates (x,y)
|
|
118
165
|
|
|
119
166
|
First coordinate is X value.
|
|
120
167
|
|
|
121
|
-
>E.G:
|
|
168
|
+
> E.G:
|
|
122
169
|
|
|
123
170
|
```
|
|
124
171
|
{coordinates: (2) [419463.63262834214, 4577166.970846243]
|
|
125
172
|
type: "coordinates"}
|
|
126
173
|
```
|
|
127
174
|
|
|
128
|
-
##### info
|
|
175
|
+
##### info
|
|
129
176
|
|
|
130
177
|
Notifies info results. There're 2 availables infos `wms` and `giswater`
|
|
131
178
|
|
|
132
|
-
>E.G `wms`:
|
|
179
|
+
> E.G `wms`:
|
|
133
180
|
|
|
134
181
|
```
|
|
135
182
|
{type: "info", infoType: "wms", data: "<GetFeatureInfoResponse>↵ <Layer name="Incidencia_… </Feature>↵ </Layer>↵</GetFeatureInfoResponse>↵"}
|
|
136
183
|
```
|
|
137
184
|
|
|
138
|
-
>E.G `giswater`:
|
|
185
|
+
> E.G `giswater`:
|
|
139
186
|
|
|
140
187
|
```
|
|
141
188
|
{type: "info", infoType: "giswater", data: {…}}
|
|
142
189
|
```
|
|
143
|
-
|
|
190
|
+
|
|
191
|
+
##### geolocation
|
|
144
192
|
|
|
145
193
|
Notifies user position, coordinates (x,y)
|
|
146
194
|
|
|
147
195
|
First coordinate is X value.
|
|
148
196
|
|
|
149
|
-
>E.G
|
|
197
|
+
> E.G
|
|
150
198
|
|
|
151
199
|
```
|
|
152
200
|
|
|
153
201
|
{type: "geolocation", coordinates: Array(2)}
|
|
154
202
|
coordinates: (2) [419297.8249458591, 4576821.519666988]
|
|
155
203
|
```
|
|
156
|
-
##### Giswater tiled background #####
|
|
157
204
|
|
|
158
|
-
Giswater
|
|
205
|
+
##### Giswater tiled background
|
|
159
206
|
|
|
207
|
+
Giswater's tiled background has two events, one for notify if is available or not, and a another one for notify if is rendered or not
|
|
160
208
|
|
|
161
209
|
`giswaterTiledBackgroundAvailable` and `giswaterTiledBackgroundDisplayed`
|
|
162
210
|
|
|
@@ -166,7 +214,7 @@ Giswater's tiled background has two events, one for notify if is available or no
|
|
|
166
214
|
{type: "giswaterTiledBackgroundDisplayed", visible: true/false}
|
|
167
215
|
```
|
|
168
216
|
|
|
169
|
-
##### Giswater layer Available filters
|
|
217
|
+
##### Giswater layer Available filters
|
|
170
218
|
|
|
171
219
|
List of available filters for a Giswater layer
|
|
172
220
|
|
|
@@ -175,33 +223,50 @@ List of available filters for a Giswater layer
|
|
|
175
223
|
|
|
176
224
|
```
|
|
177
225
|
|
|
178
|
-
##### error
|
|
226
|
+
##### error
|
|
179
227
|
|
|
180
228
|
Notifies errors
|
|
181
229
|
|
|
182
|
-
>E.G.
|
|
230
|
+
> E.G.
|
|
183
231
|
|
|
184
232
|
```
|
|
185
233
|
{type: "error", error: "No clicked coordinates"}
|
|
186
234
|
```
|
|
187
235
|
|
|
188
|
-
## Methods
|
|
236
|
+
## Methods
|
|
237
|
+
|
|
238
|
+
##### ZoomIn()
|
|
239
|
+
|
|
240
|
+
##### ZoomOut()
|
|
241
|
+
|
|
242
|
+
##### zoomToExtent()
|
|
243
|
+
|
|
244
|
+
##### zoomToCoordinates(coordinates,zoomLevel)
|
|
245
|
+
|
|
246
|
+
Zooms to given coordinates
|
|
247
|
+
|
|
248
|
+
> Params
|
|
249
|
+
|
|
250
|
+
- lat (x) `<integer>`
|
|
251
|
+
- long (y) `<integer>`
|
|
252
|
+
- zoomLevel `<integer>` - zoom level
|
|
253
|
+
|
|
254
|
+
> E.G.
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
zoomToCoordinates(419006.12985785044, 4576698.8136144625,18);
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
##### AddGeom(string)
|
|
189
262
|
|
|
190
|
-
##### ZoomIn() #####
|
|
191
|
-
|
|
192
|
-
##### ZoomOut() #####
|
|
193
|
-
|
|
194
|
-
##### zoomToExtent() #####
|
|
195
|
-
|
|
196
|
-
##### AddGeom(string) #####
|
|
197
|
-
|
|
198
263
|
Launches drawing tools with the geometry type
|
|
199
264
|
|
|
200
|
-
>Params
|
|
201
|
-
|
|
265
|
+
> Params
|
|
266
|
+
|
|
202
267
|
- geom `<string>` - geometry type `Point` | `Line` | `Polygon`
|
|
203
268
|
|
|
204
|
-
>E.G.
|
|
269
|
+
> E.G.
|
|
205
270
|
|
|
206
271
|
```
|
|
207
272
|
AddGeom('Point');
|
|
@@ -210,66 +275,98 @@ AddGeom('Line');
|
|
|
210
275
|
|
|
211
276
|
AddGeom('Polygon');
|
|
212
277
|
```
|
|
278
|
+
|
|
213
279
|
An `geomAdded` event will be received after calling the method.
|
|
214
280
|
|
|
215
|
-
##### clear()
|
|
216
|
-
|
|
281
|
+
##### clear()
|
|
282
|
+
|
|
217
283
|
Clears drawn geometries
|
|
218
|
-
|
|
219
|
-
##### toggleLayer
|
|
220
|
-
|
|
284
|
+
|
|
285
|
+
##### toggleLayer
|
|
286
|
+
|
|
221
287
|
Shows/hides a layer
|
|
222
288
|
|
|
223
|
-
>Params
|
|
289
|
+
> Params
|
|
224
290
|
|
|
225
291
|
- layerName `<string>` - layer name
|
|
292
|
+
- properties `<object>` - _optional_ layer properties
|
|
293
|
+
- gutter `<integer>` - The size in pixels of the gutter around image tiles to ignore, only applies for multitile layer
|
|
294
|
+
- singletile `<boolean>` - SingleTile Layer
|
|
295
|
+
- transparent `<boolean>` - Transparent Layer
|
|
226
296
|
|
|
227
|
-
|
|
297
|
+
By default, layer properties will be:
|
|
298
|
+
|
|
299
|
+
`gutter: 0`
|
|
300
|
+
|
|
301
|
+
`singletile: false` - will render a multitile layer
|
|
302
|
+
|
|
303
|
+
`transparent: true`
|
|
304
|
+
|
|
305
|
+
> E.G.
|
|
306
|
+
|
|
307
|
+
With no properties
|
|
228
308
|
|
|
229
309
|
```
|
|
230
310
|
toggleLayer('somelayer_name');
|
|
231
311
|
```
|
|
232
|
-
|
|
233
|
-
|
|
312
|
+
|
|
313
|
+
With properties
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
toggleLayer('somelayer_name', {gutter: 10, transparent: false, singletile: false);
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
##### setActiveLayer()
|
|
234
320
|
|
|
235
321
|
Sets a layer as acticve layer, used for infos
|
|
236
322
|
|
|
237
|
-
>E.G.
|
|
323
|
+
> E.G.
|
|
238
324
|
|
|
239
325
|
```
|
|
240
326
|
setActiveLayer('somelayer_name');
|
|
241
327
|
```
|
|
242
328
|
|
|
243
|
-
##### reloadDisplayedLayers
|
|
329
|
+
##### reloadDisplayedLayers
|
|
244
330
|
|
|
245
331
|
Reloads displayed layers
|
|
246
332
|
|
|
247
|
-
|
|
248
|
-
>E.G.
|
|
333
|
+
> E.G.
|
|
249
334
|
|
|
250
335
|
```
|
|
251
336
|
reloadDisplayedLayers();
|
|
252
337
|
```
|
|
253
338
|
|
|
254
|
-
#####
|
|
339
|
+
##### loadWMSAvailableLayers
|
|
340
|
+
|
|
341
|
+
Gets a list of available layers from WMS server
|
|
342
|
+
|
|
343
|
+
> E.G.
|
|
344
|
+
|
|
345
|
+
```
|
|
346
|
+
loadWMSAvailableLayers();
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
An `availableWMSLayers ` event will be received after calling the method.
|
|
350
|
+
|
|
351
|
+
##### infoFromCoordinates
|
|
255
352
|
|
|
256
353
|
There're two available info from coordinates `wms` or `giswater`.
|
|
257
354
|
|
|
258
355
|
**Important** a `click on the map` must be done before calling this method.
|
|
259
|
-
If you don't specify a layer, will use the layer setted as
|
|
356
|
+
If you don't specify a layer, will use the layer setted as `Active layer`
|
|
357
|
+
|
|
358
|
+
> Params
|
|
260
359
|
|
|
261
|
-
|
|
360
|
+
- type `<string>` - info type
|
|
262
361
|
|
|
263
|
-
-
|
|
362
|
+
- `wms` - wms info
|
|
363
|
+
|
|
364
|
+
- `giswater` - giswater info
|
|
264
365
|
|
|
265
|
-
- `wms` - wms info
|
|
266
|
-
|
|
267
|
-
- `giswater` - giswater info
|
|
268
|
-
|
|
269
366
|
- layer `<string>` _optional_ layer name to do info. If null, will use current active layer.
|
|
270
367
|
- hitTolerance `<integer>` _optional_ for geoJSON Info, pixels inside the radius around the given will be checked for features. Default `5`.
|
|
271
368
|
|
|
272
|
-
>E.G.
|
|
369
|
+
> E.G.
|
|
273
370
|
|
|
274
371
|
```
|
|
275
372
|
infoFromCoordinates('wms'); //will use active layer
|
|
@@ -280,15 +377,15 @@ infoFromCoordinates('giswater','Arc');
|
|
|
280
377
|
|
|
281
378
|
An `info` event will be received after calling the method.
|
|
282
379
|
|
|
283
|
-
##### Geolocalize
|
|
380
|
+
##### Geolocalize
|
|
284
381
|
|
|
285
382
|
Geolocalizes user. Will dispatch `geolocation` event .
|
|
286
383
|
|
|
287
|
-
>Params
|
|
384
|
+
> Params
|
|
288
385
|
|
|
289
386
|
- toggle `<Boolean>` - starts or cancels geolocation
|
|
290
387
|
|
|
291
|
-
>E.G.
|
|
388
|
+
> E.G.
|
|
292
389
|
|
|
293
390
|
```
|
|
294
391
|
//start
|
|
@@ -300,7 +397,7 @@ Geolocalize(false)
|
|
|
300
397
|
|
|
301
398
|
**Important** Add ` allow="geolocation"` to html iframe tag.
|
|
302
399
|
|
|
303
|
-
##### Higlight
|
|
400
|
+
##### Higlight
|
|
304
401
|
|
|
305
402
|
Highlights a geometry
|
|
306
403
|
|
|
@@ -308,28 +405,29 @@ Params
|
|
|
308
405
|
|
|
309
406
|
- options `<object>` highlight options
|
|
310
407
|
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
- zoom `<object>`
|
|
408
|
+
- geom `<string>` - geometry string
|
|
314
409
|
|
|
315
|
-
|
|
410
|
+
- zoom `<object>`
|
|
316
411
|
|
|
317
|
-
|
|
412
|
+
- zoom.type `<string>` - `level | element`
|
|
318
413
|
|
|
319
|
-
|
|
414
|
+
_level_ will zoom to zoomLevel
|
|
320
415
|
|
|
321
|
-
|
|
416
|
+
_element_ geometry center
|
|
322
417
|
|
|
323
|
-
|
|
418
|
+
- zoom.zoomLevel `<integer>` 1 to 28
|
|
324
419
|
|
|
420
|
+
> E.G.
|
|
325
421
|
|
|
326
422
|
```
|
|
327
423
|
//Highlight a line and zoom to level 6
|
|
328
424
|
|
|
329
425
|
let options = {
|
|
330
426
|
'geom': 'MULTILINESTRING((418596.62555076234 4577083.383681167,419026.2319996517 4577216.795306675))',
|
|
331
|
-
'
|
|
332
|
-
|
|
427
|
+
'zoom':{
|
|
428
|
+
'type':'level',
|
|
429
|
+
'zoomLevel':6
|
|
430
|
+
}
|
|
333
431
|
}
|
|
334
432
|
|
|
335
433
|
Highlight(options);
|
|
@@ -338,13 +436,15 @@ Highlight(options);
|
|
|
338
436
|
|
|
339
437
|
let options = {
|
|
340
438
|
'geom': 'MULTILINESTRING((418596.62555076234 4577083.383681167,419026.2319996517 4577216.795306675))',
|
|
341
|
-
'
|
|
439
|
+
'zoom':{
|
|
440
|
+
'type':'element'
|
|
441
|
+
}
|
|
342
442
|
}
|
|
343
443
|
|
|
344
444
|
Highlight(options);
|
|
345
445
|
```
|
|
346
446
|
|
|
347
|
-
##### toggleGiswaterTiled
|
|
447
|
+
##### toggleGiswaterTiled
|
|
348
448
|
|
|
349
449
|
Only for Giswater's maps. Toggles tiled background (in case tiled background is configured)
|
|
350
450
|
|
|
@@ -352,16 +452,14 @@ Params
|
|
|
352
452
|
|
|
353
453
|
- toggle `<boolean>` shows/hides tiled background
|
|
354
454
|
|
|
355
|
-
|
|
356
|
-
>E.G.
|
|
357
|
-
|
|
455
|
+
> E.G.
|
|
358
456
|
|
|
359
457
|
```
|
|
360
458
|
toggleGiswaterTiled(true);
|
|
361
459
|
|
|
362
460
|
```
|
|
363
461
|
|
|
364
|
-
##### addGeoJSON
|
|
462
|
+
##### addGeoJSON
|
|
365
463
|
|
|
366
464
|
Adds geoJSON layer
|
|
367
465
|
|
|
@@ -370,13 +468,13 @@ Params
|
|
|
370
468
|
- geoJSON `<geoJSON>` geoJSON data
|
|
371
469
|
|
|
372
470
|
- options `<json>` layer options
|
|
373
|
-
- fillcolor `<string>` fill color. If null will use red color (#ff0000)
|
|
374
|
-
- strokecolor `<string>` strokecolor color. If null will use red color (#ff0000)
|
|
375
471
|
|
|
376
|
-
-
|
|
472
|
+
- fillcolor `<string>` fill color. If null will use red color (#ff0000)
|
|
473
|
+
- strokecolor `<string>` strokecolor color. If null will use red color (#ff0000)
|
|
377
474
|
|
|
378
|
-
|
|
475
|
+
- name `<string>` geoJson layer name, if null will use a random string
|
|
379
476
|
|
|
477
|
+
> E.G.
|
|
380
478
|
|
|
381
479
|
```
|
|
382
480
|
addGeoJSON(geoJSON,options, name);
|
|
@@ -392,7 +490,8 @@ const options = {
|
|
|
392
490
|
addGeoJSON('GeoJSONContent', options,'name');
|
|
393
491
|
|
|
394
492
|
```
|
|
395
|
-
|
|
493
|
+
|
|
494
|
+
##### removeGeoJSONLayer
|
|
396
495
|
|
|
397
496
|
Removes a GeoJSON Layer
|
|
398
497
|
|
|
@@ -402,19 +501,17 @@ removeGeoJSONLayer(layerName);
|
|
|
402
501
|
removeGeoJSONLayer('somename');
|
|
403
502
|
```
|
|
404
503
|
|
|
405
|
-
##### clearGeoJSON
|
|
504
|
+
##### clearGeoJSON
|
|
406
505
|
|
|
407
506
|
Clears geoJSON layers
|
|
408
507
|
|
|
409
|
-
|
|
410
|
-
>E.G.
|
|
411
|
-
|
|
508
|
+
> E.G.
|
|
412
509
|
|
|
413
510
|
```
|
|
414
511
|
clearGeoJSON();
|
|
415
512
|
```
|
|
416
513
|
|
|
417
|
-
##### setGiswaterFilters
|
|
514
|
+
##### setGiswaterFilters
|
|
418
515
|
|
|
419
516
|
Set Giswater's filters for displayed layers
|
|
420
517
|
|
|
@@ -424,56 +521,167 @@ Filters must be a JSON with valid fields. Available layer filters can be obtaine
|
|
|
424
521
|
setGiswaterFilters(JSON);
|
|
425
522
|
```
|
|
426
523
|
|
|
427
|
-
>E.G.
|
|
428
|
-
|
|
524
|
+
> E.G.
|
|
429
525
|
|
|
430
526
|
```
|
|
431
527
|
setGiswaterFilters({"expl_id":[1,2,3]});
|
|
432
528
|
```
|
|
433
529
|
|
|
434
|
-
##### getGiswaterLayerAvailableFilters
|
|
530
|
+
##### getGiswaterLayerAvailableFilters
|
|
435
531
|
|
|
436
532
|
Get available WMTS filters for a Giswater layer
|
|
437
533
|
|
|
438
|
-
|
|
439
534
|
```
|
|
440
535
|
getGiswaterLayerAvailableFilters(layername);
|
|
441
536
|
```
|
|
442
537
|
|
|
443
|
-
>E.G.
|
|
444
|
-
|
|
538
|
+
> E.G.
|
|
445
539
|
|
|
446
540
|
```
|
|
447
541
|
getGiswaterLayerAvailableFilters("Arc");
|
|
448
542
|
```
|
|
449
543
|
|
|
450
|
-
|
|
544
|
+
##### setCustomColors
|
|
545
|
+
|
|
546
|
+
Sets colors and stroke width for added & highlight geometries.
|
|
547
|
+
|
|
548
|
+
Properties:
|
|
549
|
+
|
|
550
|
+
- `geom_stroke_color` - stroke color in RGB format
|
|
551
|
+
- `geom_fill_color` - fill color in RGB format
|
|
552
|
+
- `geom_stroke_width` - stroke width in pixels, default 1.
|
|
553
|
+
- `geom_shape` - shape por point, `circle`(default) or `square`
|
|
554
|
+
- `radius` - point radius or square side in pixels. Default 4.
|
|
555
|
+
|
|
556
|
+
```
|
|
557
|
+
setCustomColors({geom_stroke_color, geom_fill_color, geom_stroke_width,geom_shape});
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
> E.G.
|
|
561
|
+
|
|
562
|
+
```
|
|
563
|
+
setCustomColors({
|
|
564
|
+
geom_stroke_color: 'rgb(19, 39, 99,0.5)',
|
|
565
|
+
geom_fill_color: 'rgb(19, 39, 99,0.5)',
|
|
566
|
+
geom_stroke_width: 1,
|
|
567
|
+
geom_shape: 'circle',
|
|
568
|
+
radius: 2
|
|
569
|
+
});
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
On Bmaps projects, default values are taken from Backoffice:
|
|
573
|
+
|
|
574
|
+
```
|
|
575
|
+
geom_stroke_color -> Bmaps: geom_select_stroke_color
|
|
576
|
+
geom_fill_color -> Bmaps: geom_select_fill_color
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
### Multiple iframes
|
|
582
|
+
|
|
583
|
+
Is possible to use multiple iframe on a single page, follow this steps.
|
|
584
|
+
|
|
585
|
+
- Set to your `iframe` tags the id & value
|
|
586
|
+
- Add to each `iframe.src` `&domId=IFRAME_ID`
|
|
587
|
+
- Instantiate each iframe:
|
|
588
|
+
|
|
589
|
+
```
|
|
590
|
+
var communicator = new VidroMaps.Communicator({
|
|
591
|
+
sessionToken: sessionToken,
|
|
592
|
+
id:'IFRAME_ID'
|
|
593
|
+
});
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
## Examples
|
|
451
597
|
|
|
452
|
-
### Simple
|
|
598
|
+
### Simple
|
|
453
599
|
|
|
454
|
-
`examples/simple/`
|
|
600
|
+
`examples/simple/`
|
|
455
601
|
|
|
456
602
|
A simple integration with just zoom buttons
|
|
457
603
|
|
|
458
|
-
##### How it works
|
|
604
|
+
##### How it works
|
|
459
605
|
|
|
460
606
|
1. Gets user, password and API url from the url
|
|
461
607
|
2. Request a user token to the API
|
|
462
608
|
3. Loads the first map of the user
|
|
463
609
|
|
|
464
|
-
[
|
|
465
|
-
|
|
610
|
+
[https://www.vidrosoftware.com/examples/simple/?user=USER&pwd=USER_PASWORD&api=API_URL]()
|
|
466
611
|
|
|
467
|
-
### Full
|
|
612
|
+
### Full
|
|
468
613
|
|
|
469
|
-
`examples/full/`
|
|
614
|
+
`examples/full/`
|
|
470
615
|
|
|
471
616
|
Full integration
|
|
472
617
|
|
|
473
|
-
##### How it works
|
|
618
|
+
##### How it works
|
|
474
619
|
|
|
475
620
|
1. User, password and API url are defined on the html form
|
|
476
621
|
2. Stores token and last map loaded in a fake cache
|
|
477
622
|
3. There's a form for choosing map and customize map parameters
|
|
478
623
|
|
|
479
|
-
[
|
|
624
|
+
[https://www.vidrosoftware.com/examples/full/]()
|
|
625
|
+
|
|
626
|
+
### Vidromaps
|
|
627
|
+
|
|
628
|
+
`examples/vidromaps/`
|
|
629
|
+
|
|
630
|
+
Vidromaps integration
|
|
631
|
+
|
|
632
|
+
##### How it works
|
|
633
|
+
|
|
634
|
+
1. Paste iframe code
|
|
635
|
+
|
|
636
|
+
[https://www.vidrosoftware.com/examples/vidromaps/]()
|
|
637
|
+
|
|
638
|
+
### Serverless
|
|
639
|
+
|
|
640
|
+
`examples/serveLess/`
|
|
641
|
+
|
|
642
|
+
Server less sample integration
|
|
643
|
+
|
|
644
|
+
##### How it works
|
|
645
|
+
|
|
646
|
+
1. Gets user, password and API url from the url
|
|
647
|
+
2. Request a user token to the API
|
|
648
|
+
3. Loads the first map of the user with one layer rendered
|
|
649
|
+
4. On map click, performs an wms info, displays one attribute, highlights the clicked point and centers map on that point
|
|
650
|
+
|
|
651
|
+
### Mutiple iframes
|
|
652
|
+
|
|
653
|
+
`examples/multipleiframes/`
|
|
654
|
+
|
|
655
|
+
Multiple iframes integration
|
|
656
|
+
|
|
657
|
+
##### How it works
|
|
658
|
+
|
|
659
|
+
1. Replace `YOUR_SESSION_TOKEN` with your session token code on both inputs `code1` and `code2`.
|
|
660
|
+
|
|
661
|
+
[https://www.vidrosoftware.com/examples/multipleiframes/]()
|
|
662
|
+
|
|
663
|
+
### Known issues
|
|
664
|
+
|
|
665
|
+
- **Custom logo is not displayed**
|
|
666
|
+
|
|
667
|
+
Could be CORS issue. Check the headers sent by your server.
|
|
668
|
+
|
|
669
|
+
With Apache can be solved with and `.htaccess` file with this content:
|
|
670
|
+
|
|
671
|
+
```
|
|
672
|
+
Header set Access-Control-Allow-Origin "*"
|
|
673
|
+
Header add Cross-Origin-Resource-Policy: "cross-origin"
|
|
674
|
+
Header add Cross-Origin-Embedder-Policy: "require-corp"
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
- **QGIS Broken symbology**
|
|
678
|
+
|
|
679
|
+
QGIS multi tile layers could show broken symbology:
|
|
680
|
+
|
|
681
|
+

|
|
682
|
+
|
|
683
|
+
This can be solved using `singletile: true` or adding `gutter: value in pixels` if is a multitiule layer, on toggleLayer method.
|
|
684
|
+
|
|
685
|
+
Is if is a Giswwater project, you can set this options (`Render mode` and `Gutter`) on Bmaps backoffice.
|
|
686
|
+
|
|
687
|
+

|