Skip to content

Commit cfca1a6

Browse files
Add Geo-location filter for search
1 parent 4b4888c commit cfca1a6

File tree

5 files changed

+59
-4
lines changed

5 files changed

+59
-4
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# Node-Red-iotbnb
2-
Development of the IoTBnB APIs
2+
Development of the IoTBnB APIs v0.0.2

Diff for: iotbnb.html

+30
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
category: 'IoT standard',
77
color: '#00AFF0',
88
defaults: {
9+
latitude: {value:""},
10+
longitude: {value:""},
11+
radius: {value:""},
912
name: {value:""},
1013
operations: {value:""},
1114
type1: {value:"all"},
@@ -23,6 +26,9 @@
2326
var oper = $("#node-input-operations").val();
2427
//var oper_readTypes = $("#node-input-readTypes").val();
2528
if (oper == undefined) {
29+
$(".node-input-Geo1").hide();
30+
$(".node-input-Geo2").hide();
31+
$(".node-input-Geo3").hide();
2632
$(".node-input-type1").hide();
2733
$(".node-input-price").hide();
2834
$(".node-input-reputation").hide();
@@ -59,6 +65,18 @@
5965
<option value="getServiceAccessInformation">getServiceAccessInformation</option>
6066
</select>
6167
</div>
68+
<div class="form-row node-input-Geo1">
69+
<label for="node-input-Geo1"><i class="fa fa-map-marker"></i> Geo-Filter</label> <span data-i18n="type1"></span></label>
70+
<input type="text" id="node-input-latitude" placeholder="Set latitude (by default: n/a, i.e. parameter not used)">
71+
</div>
72+
<div class="form-row node-input-Geo2">
73+
<label for="node-input-Geo2"> </label> <span data-i18n="type1"></span></label>
74+
<input type="text" id="node-input-longitude" placeholder="Set longitude (by default: n/a, i.e. parameter not used)">
75+
</div>
76+
<div class="form-row node-input-Geo3">
77+
<label for="node-input-Geo3"></label> <span data-i18n="type1"></span></label>
78+
<input type="text" id="node-input-radius" placeholder="Set a radius (by default: 100m)">
79+
</div>
6280
<div class="form-row node-input-type1">
6381
<label for="node-input-type1"><i class="fa fa-search"></i> Type</label> <span data-i18n="type1"></span></label>
6482
<input type="text" id="node-input-type1" placeholder="Set an INSPIRE theme if desired (by default: all)">
@@ -80,17 +98,26 @@
8098
$("#node-input-operations").change(function() {
8199
var oper = $("#node-input-operations").val();
82100
if (oper == "getAllServices") {
101+
$(".node-input-Geo1").hide();
102+
$(".node-input-Geo2").hide();
103+
$(".node-input-Geo3").hide();
83104
$(".node-input-type1").hide();
84105
$(".node-input-price").hide();
85106
$(".node-input-reputation").hide();
86107
$(".node-input-service").hide();
87108
} else if (oper == "searchServices") {
109+
$(".node-input-Geo1").show();
110+
$(".node-input-Geo2").show();
111+
$(".node-input-Geo3").show();
88112
$(".node-input-type1").show();
89113
$(".node-input-price").show();
90114
$(".node-input-reputation").show();
91115
$(".node-input-service").hide();
92116
}
93117
else if (oper == "getServiceAccessInformation") {
118+
$(".node-input-Geo1").hide();
119+
$(".node-input-Geo2").hide();
120+
$(".node-input-Geo3").hide();
94121
$(".node-input-type1").hide();
95122
$(".node-input-price").hide();
96123
$(".node-input-reputation").hide();
@@ -103,6 +130,9 @@
103130

104131
<script type="text/x-red" data-help-name="iotbnb">
105132
<p> operations= n.operations || msg.operations;
133+
latitude= n.latitude || msg.latitude;
134+
longitude= n.longitude || msg.longitude;
135+
radius= n.radius || msg.radius;
106136
price= n.price || msg.price;
107137
type1= n.type1 || msg.type1;
108138
reputation= n.reputation || msg.reputation;

Diff for: iotbnb.js

+25-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,28 @@ module.exports = function(RED) {
1818
else{
1919
operations= n.operations;
2020
}
21-
21+
22+
if (n.latitude=="" && typeof msg.latitude=="undefined"){
23+
latitude="";
24+
}
25+
else{
26+
latitude=n.latitude || msg.latitude;
27+
}
28+
29+
if (n.longitude=="" && typeof msg.longitude=="undefined"){
30+
longitude="";
31+
}
32+
else{
33+
longitude=n.longitude || msg.longitude;
34+
}
35+
36+
if (n.radius=="" && typeof msg.radius=="undefined"){
37+
radius="100";
38+
}
39+
else{
40+
radius=n.radius || msg.radius;
41+
}
42+
2243
if (n.type1=="" && typeof msg.type1=="undefined"){
2344
type1="all";
2445
}
@@ -49,6 +70,9 @@ module.exports = function(RED) {
4970

5071
var options = {
5172
operations: operations,
73+
latitude: latitude,
74+
longitude: longitude,
75+
radius: radius,
5276
type1: type1,
5377
price: price,
5478
reputation: reputation,

Diff for: iotbnbcons/iotbnbcons.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ iotbnbcons.prototype.callMethod = function (options, callback) {
6161
var xmlmsg_omiodf = '<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0"><call msgformat="odf"><msg><Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/"><Object><id>Service</id><InfoItem name="getAllServices"/></Object></Objects></msg></call></omiEnvelope>';
6262
}
6363
else if (options.operations=="searchServices"){
64-
var xmlmsg_omiodf = '<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0"><call msgformat="odf"><msg><Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/"><Object><id>Service</id><InfoItem name="searchServices"><value type="odf"><Objects><Object><id>MyParameters</id><InfoItem name="price"><value type="xs:String">'+options.price+'</value></InfoItem><InfoItem name="type"><value type="xs:String">'+options.type1+'</value></InfoItem><InfoItem name="reputation"><value type="xs:String">'+options.reputation+'</value></InfoItem></Object></Objects></value></InfoItem></Object></Objects></msg></call></omiEnvelope>';
64+
//var xmlmsg_omiodf = '<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0"><call msgformat="odf"><msg><Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/"><Object><id>Service</id><InfoItem name="searchServices"><value type="odf"><Objects><Object><id>MyParameters</id><InfoItem name="price"><value type="xs:String">'+options.price+'</value></InfoItem><InfoItem name="type"><value type="xs:String">'+options.type1+'</value></InfoItem><InfoItem name="reputation"><value type="xs:String">'+options.reputation+'</value></InfoItem></Object></Objects></value></InfoItem></Object></Objects></msg></call></omiEnvelope>';
65+
var xmlmsg_omiodf = '<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0"><call msgformat="odf"><msg><Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/"><Object><id>Service</id><InfoItem name="searchServices"><value type="odf"><Objects><Object><id>MyParameters</id><InfoItem name="price"><value type="xs:String">'+options.price+'</value></InfoItem><InfoItem name="type"><value type="xs:String">'+options.type1+'</value></InfoItem><InfoItem name="reputation"><value type="xs:String">'+options.reputation+'</value></InfoItem><Object type="schema:GeoCoordinates"><id>geo</id><InfoItem name="latitude"><value type="xs:string">'+options.latitude+'</value></InfoItem><InfoItem name="longitude"><value type="xs:String">'+options.longitude+'</value></InfoItem><InfoItem name="radius"><value type="xs:String">'+options.radius+'</value></InfoItem></Object></Object></Objects></value></InfoItem></Object></Objects></msg></call></omiEnvelope>';
6566
}
6667
else if (options.operations=="getServiceAccessInformation"){
6768
var xmlmsg_omiodf = '<omiEnvelope xmlns="http://www.opengroup.org/xsd/omi/1.0/" version="1.0" ttl="0"><call msgformat="odf"><msg><Objects xmlns="http://www.opengroup.org/xsd/odf/1.0/"><Object><id>Service</id><InfoItem name="getServiceAccessInformation"><value type="odf"><Objects><Object><id>MyParameters</id><InfoItem name="service"><value type="xs:String">'+options.service+'</value></InfoItem></Object></Objects></value></InfoItem></Object></Objects></msg></call></omiEnvelope>';

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "node-red-contrib-iotbnb",
3-
"version" : "0.0.1",
3+
"version" : "0.0.2",
44
"description" : "A sample node for node-red",
55
"dependencies": {
66
},

0 commit comments

Comments
 (0)