node-red-contrib-web-worldmap 3.1.0 → 4.0.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/CHANGELOG.md +4 -0
- package/README.md +33 -36
- package/examples/ESRI featurelayer overlay.json +1 -0
- package/package.json +1 -1
- package/worldmap/worldmap.js +239 -139
- package/worldmap.html +2 -1
- package/worldmap.js +32 -2
package/worldmap.html
CHANGED
|
@@ -617,6 +617,7 @@ If <i>Web Path</i> is left empty, then by default <code>⌘⇧m</code> - <code>c
|
|
|
617
617
|
<li><b>delete</b> - when a point or shape is deleted</li>
|
|
618
618
|
<li><b>point</b> - when a point is added manually using right-click</li>
|
|
619
619
|
<li><b>draw</b> - when a shape is added manually to the drawing layer</li>
|
|
620
|
+
<li><b>drawdelete</b> - when a shape is deleted from the drawing layer</li>
|
|
620
621
|
<li><b>layer</b> - when a base layer is changed</li>
|
|
621
622
|
<li><b>addlayer</b> - when an overlay is added to the map</li>
|
|
622
623
|
<li><b>dellayer</b> - when an overlay is removed from the map</li>
|
|
@@ -662,10 +663,10 @@ If <i>Web Path</i> is left empty, then by default <code>⌘⇧m</code> - <code>c
|
|
|
662
663
|
{ value: "connect", label: "Connect"},
|
|
663
664
|
{ value: "disconnect", label: "Disconnect"},
|
|
664
665
|
{ value: "point", label: "Add, move, delete point"},
|
|
666
|
+
{ value: "draw", label: "Add, edit or delete drawing"},
|
|
665
667
|
{ value: "layer", label: "Add, remove layers"},
|
|
666
668
|
{ value: "bounds", label: "Boundary change"},
|
|
667
669
|
{ value: "files", label: "File drop"},
|
|
668
|
-
{ value: "draw", label: "Drawing"},
|
|
669
670
|
{ value: "other", label: "All other"}
|
|
670
671
|
]
|
|
671
672
|
}]});
|
package/worldmap.js
CHANGED
|
@@ -69,12 +69,22 @@ module.exports = function(RED) {
|
|
|
69
69
|
RED.httpNode.use(node.path, express.static(__dirname + '/worldmap'));
|
|
70
70
|
// RED.httpNode.use(node.path, express.static(__dirname + '/worldmap', {maxage:3600000}));
|
|
71
71
|
|
|
72
|
+
var sendToRest = function(m,id) {
|
|
73
|
+
for (var c in clients) {
|
|
74
|
+
if (clients.hasOwnProperty(c) && c !== id) {
|
|
75
|
+
// console.log("RESEND",m);
|
|
76
|
+
clients[c].write(JSON.stringify(m));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
72
81
|
var callback = function(client) {
|
|
73
82
|
if (!client.headers.hasOwnProperty("user-agent")) { client.close(); }
|
|
74
83
|
//client.setMaxListeners(0);
|
|
75
84
|
clients[client.id] = client;
|
|
76
85
|
client.on('data', function(message) {
|
|
77
86
|
message = JSON.parse(message);
|
|
87
|
+
// console.log("ACTION",message.action,client.id,message)
|
|
78
88
|
if (message.action === "connected") {
|
|
79
89
|
var m = {};
|
|
80
90
|
var c = {init:true};
|
|
@@ -113,6 +123,26 @@ module.exports = function(RED) {
|
|
|
113
123
|
o.map(v => delete v.tout);
|
|
114
124
|
setTimeout(function() { client.write(JSON.stringify(o)) }, 250);
|
|
115
125
|
}
|
|
126
|
+
if (message.action === "draw") {
|
|
127
|
+
delete message.action;
|
|
128
|
+
delete message.type;
|
|
129
|
+
delete message.options?.pane;
|
|
130
|
+
allPoints[message.name] = RED.util.cloneMessage(message);
|
|
131
|
+
sendToRest(message,client.id);
|
|
132
|
+
}
|
|
133
|
+
if (message.action === "point") {
|
|
134
|
+
delete message.action;
|
|
135
|
+
sendToRest(message,client.id);
|
|
136
|
+
}
|
|
137
|
+
if (message.action === "move") {
|
|
138
|
+
delete message.action;
|
|
139
|
+
delete message.from;
|
|
140
|
+
sendToRest(message,client.id);
|
|
141
|
+
}
|
|
142
|
+
if (message.action === "delete" || message.action === "drawdelete") {
|
|
143
|
+
delete allPoints[message.name];
|
|
144
|
+
sendToRest(message,client.id);
|
|
145
|
+
}
|
|
116
146
|
});
|
|
117
147
|
client.on('close', function() {
|
|
118
148
|
delete clients[client.id];
|
|
@@ -283,10 +313,10 @@ module.exports = function(RED) {
|
|
|
283
313
|
message.content = Buffer.from(message.content.split('base64,')[1], 'base64');
|
|
284
314
|
setImmediate(function() {node.send({payload:message, topic:node.path.substr(1), _sessionid:client.id, _sessionip:sessionip})});
|
|
285
315
|
}
|
|
286
|
-
if ((node.events.indexOf("draw")!==-1) && (message.action === "draw")) {
|
|
316
|
+
if ((node.events.indexOf("draw")!==-1) && ((message.action === "draw")||(message.action === "drawdelete"))) {
|
|
287
317
|
setImmediate(function() {node.send({payload:message, topic:node.path.substr(1), _sessionid:client.id, _sessionip:sessionip})});
|
|
288
318
|
}
|
|
289
|
-
if (node.events.indexOf("other")!==-1 && "connected,point,delete,move,draw,files,bounds".indexOf(message.action) === -1) {
|
|
319
|
+
if (node.events.indexOf("other")!==-1 && "connected,point,delete,move,draw,drawdelete,files,bounds".indexOf(message.action) === -1) {
|
|
290
320
|
setImmediate(function() {node.send({payload:message, topic:node.path.substr(1), _sessionid:client.id, _sessionip:sessionip})});
|
|
291
321
|
}
|
|
292
322
|
}
|