Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
IQG4iCity
Schwabisch_Hall
Commits
24243e5b
Commit
24243e5b
authored
Jul 22, 2022
by
JOE XMG
Browse files
update change
parent
51ffc700
Pipeline
#6781
passed with stage
in 7 seconds
Changes
8
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
public/application/img/sensor.png
0 → 100644
View file @
24243e5b
17.5 KB
public/application/index.html
View file @
24243e5b
...
...
@@ -39,7 +39,25 @@
<a
href=
"../index.html"
>
Back to main page
</a>
<hr>
<h5>
Utility Network
</h5>
<div
class=
"form-check"
>
<input
class=
"form-check-input"
type=
"checkbox"
value=
""
id=
"util_nw_line"
>
<label
class=
"form-check-label"
for=
"util_nw_line"
>
Utility Network Lines
<div
class=
"spinner-border spinner-border-sm"
role=
"status"
id=
"util_nw_line_loading"
style=
"display: none;"
>
<span
class=
"visually-hidden"
>
Loading...
</span>
</div>
</label>
</div>
<div
class=
"form-check"
>
<input
class=
"form-check-input"
type=
"checkbox"
value=
""
id=
"util_nw_point"
>
<label
class=
"form-check-label"
for=
"util_nw_point"
>
Utility Network Point
</label>
</div>
<hr>
<h5>
Building
</h5>
<select
class=
"form-select"
id=
"BuildingStyleSelector"
>
...
...
@@ -54,51 +72,43 @@
Building Shadow
</label>
</div>
<div
id=
"chart"
></div>
<hr>
<h5>
Utility Network
</h5>
<div
class=
"form-check"
>
<input
class=
"form-check-input"
type=
"checkbox"
value=
""
id=
"util_nw_line"
>
<label
class=
"form-check-label"
for=
"util_nw_line"
>
Utility Network Lines
<div
class=
"spinner-border spinner-border-sm"
role=
"status"
id=
"util_nw_line_loading"
style=
"display: none;"
>
<span
class=
"visually-hidden"
>
Loading...
</span>
</div>
</label>
</div>
<div
class=
"form-check"
>
<input
class=
"form-check-input"
type=
"checkbox"
value=
""
id=
"util_nw_point"
>
<label
class=
"form-check-label"
for=
"util_nw_point"
>
Utility Network Point
</label>
<div
id=
"chart_intro"
style=
"display: none;"
>
<hr>
<h5>
Sensor Data
</h5>
<div
id=
"attribute-table-area"
></div>
</div>
<div
id=
"chart_area"
></div>
<hr>
<footer
class=
"footer mt-auto py-3 bg-light"
>
<span>
Found technical issue? Please contact
<a
href=
"https://www.hft-stuttgart.de/p/thunyathep-santhanavanich"
>
Joe
</a>
</span>
<br>
<div
class=
"row"
>
<div
style=
"width: 70px;"
>
<img
src=
"https://www.hft-stuttgart.com/typo3conf/ext/hft_sitepackage/Resources/Public/img/HFT_logo.svg"
alt=
""
width=
"50"
>
</div>
<div
class=
"col"
>
<span
class=
"text-muted"
>
EnSyS-LE @HFT Stuttgart, 2020 - 2022.
</span>
<br>
<a
href=
"https://www.hft-stuttgart.de/impressum"
target=
"_blank"
>
Impressum
</a>
<a
href=
"https://www.hft-stuttgart.de/datenschutz"
target=
"_blank"
>
Datenschutz
</a>
</div>
</div>
</footer>
</div>
<footer
class=
"footer mt-auto py-3 bg-light"
style=
"position: fixed;
height: 100px;
bottom: 0;
width: 100%;"
>
<span>
Found technical issue? Please contact
<a
href=
"https://www.hft-stuttgart.de/p/thunyathep-santhanavanich"
>
Joe
</a>
</span>
<br>
<div
class=
"row"
>
<div
style=
"width: 70px;"
>
<img
src=
"https://www.hft-stuttgart.com/typo3conf/ext/hft_sitepackage/Resources/Public/img/HFT_logo.svg"
alt=
""
width=
"50"
>
</div>
<div
class=
"col"
>
<span
class=
"text-muted"
>
IQG4iCity @HFT Stuttgart, 2021 - 2022.
</span>
<br>
<a
href=
"https://www.hft-stuttgart.de/impressum"
target=
"_blank"
>
Impressum
</a>
<a
href=
"https://www.hft-stuttgart.de/datenschutz"
target=
"_blank"
>
Datenschutz
</a>
</div>
</div>
</footer>
</div>
</div>
</div>
</div>
...
...
@@ -106,9 +116,13 @@
<script
src=
"https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"
integrity=
"sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0"
crossorigin=
"anonymous"
>
</script>
<script
src=
"https://cdn.jsdelivr.net/npm/apexcharts"
></script>
<script
src=
"./js/drawchart.js"
></script>
<script
src=
"./js/utility_point_data.js"
></script>
<script
src=
"./js/staconnector.js"
></script>
<script
src=
"./js/cesium_00_Main.js"
></script>
<script
src=
"./js/pipelo_sta.js"
></script>
<script
src=
"./js/cesium_mouse_handling.js"
></script>
<!-- <script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
<script src="./js/apex_draw_cologne_chart.js"></script> -->
...
...
public/application/js/cesium_00_Main.js
View file @
24243e5b
...
...
@@ -413,4 +413,5 @@ $("#util_nw_point").change(function () {
utility_Point_Entities
[
i
].
label
.
show
=
false
;
}
}
});
\ No newline at end of file
});
public/application/js/cesium_mouse_handling.js
0 → 100644
View file @
24243e5b
const
highlighted
=
{
feature
:
undefined
,
originalColor
:
new
Cesium
.
Color
(),
};
// HTML overlay for showing feature name on mouseover
const
nameOverlay
=
document
.
createElement
(
"
div
"
);
viewer
.
container
.
appendChild
(
nameOverlay
);
nameOverlay
.
className
=
"
backdrop
"
;
nameOverlay
.
style
.
display
=
"
none
"
;
nameOverlay
.
style
.
position
=
"
absolute
"
;
nameOverlay
.
style
.
bottom
=
"
0
"
;
nameOverlay
.
style
.
left
=
"
0
"
;
nameOverlay
.
style
[
"
pointer-events
"
]
=
"
none
"
;
nameOverlay
.
style
.
padding
=
"
4px
"
;
nameOverlay
.
style
.
backgroundColor
=
"
#f0f6fb
"
;
// nameOverlay.style.Color = "white!important";
// Information about the currently selected feature
const
selected
=
{
feature
:
undefined
,
originalColor
:
new
Cesium
.
Color
(),
};
// An entity object which will hold info about the currently selected feature for infobox display
const
selectedEntity
=
new
Cesium
.
Entity
();
// Get default left click handler for when a feature is not picked on left click
const
clickHandler
=
viewer
.
screenSpaceEventHandler
.
getInputAction
(
Cesium
.
ScreenSpaceEventType
.
LEFT_CLICK
);
// Color a feature yellow on hover.
// viewer.screenSpaceEventHandler.setInputAction(function onMouseMove(
// movement
// ) {
// // If a feature was previously highlighted, undo the highlight
// if (Cesium.defined(highlighted.feature)) {
// highlighted.feature.color = highlighted.originalColor;
// highlighted.feature = undefined;
// }
// // Pick a new feature
// const pickedFeature = viewer.scene.pick(movement.endPosition);
// if (!Cesium.defined(pickedFeature)) {
// nameOverlay.style.display = "none";
// return;
// }
// // A feature was picked, so show it's overlay content
// nameOverlay.style.display = "block";
// nameOverlay.style.bottom = `${viewer.canvas.clientHeight - movement.endPosition.y}px`;
// nameOverlay.style.left = `${movement.endPosition.x}px`;
// let building_gml_id = pickedFeature.getProperty("gml_id");
// let building_gml_parent_id = pickedFeature.getProperty("gml_parent_id");
// nameOverlay.innerHTML = `
// <b>3D Building Model</b> <br>
// GML ID: ${building_gml_id} <br>
// GML Parent ID: ${building_gml_parent_id}
// `;
// // Highlight the feature if it's not already selected.
// if (pickedFeature !== selected.feature) {
// highlighted.feature = pickedFeature;
// Cesium.Color.clone(
// pickedFeature.color,
// highlighted.originalColor
// );
// pickedFeature.color = Cesium.Color.YELLOW;
// }
// },
// Cesium.ScreenSpaceEventType.MOUSE_MOVE);
// Color a feature on selection and show metadata in the InfoBox.
viewer
.
screenSpaceEventHandler
.
setInputAction
(
function
onLeftClick
(
movement
)
{
// If a feature was previously selected, undo the highlight
if
(
Cesium
.
defined
(
selected
.
feature
))
{
selected
.
feature
.
color
=
selected
.
originalColor
;
selected
.
feature
=
undefined
;
$
(
"
#attribute-table-area
"
).
html
(
""
)
// refresh the attribute table area
$
(
"
#chart_intro
"
).
hide
()
// hide chart title
}
// Pick a new feature
const
pickedFeature
=
viewer
.
scene
.
pick
(
movement
.
position
);
if
(
!
Cesium
.
defined
(
pickedFeature
))
{
clickHandler
(
movement
);
return
;
}
// Select the feature if it's not already selected
if
(
selected
.
feature
===
pickedFeature
)
{
return
;
}
selected
.
feature
=
pickedFeature
;
last_picked_3DTiles
=
pickedFeature
;
//check if it is [3D Tile building] else [Pipe].
if
(
!
pickedFeature
.
id
)
{
var
all_selected_property_names
=
last_picked_3DTiles
.
getPropertyNames
();
// Save the selected feature's original color
if
(
pickedFeature
===
highlighted
.
feature
)
{
Cesium
.
Color
.
clone
(
highlighted
.
originalColor
,
selected
.
originalColor
);
highlighted
.
feature
=
undefined
;
}
else
{
Cesium
.
Color
.
clone
(
pickedFeature
.
color
,
selected
.
originalColor
);
}
// Highlight newly selected feature
pickedFeature
.
color
=
Cesium
.
Color
.
LIME
;
// Set feature infobox description
const
featureName
=
pickedFeature
.
getProperty
(
"
name
"
);
selectedEntity
.
name
=
featureName
;
attribute_text
=
``
for
(
let
index
=
0
;
index
<
all_selected_property_names
.
length
;
index
++
)
{
const
property_name
=
all_selected_property_names
[
index
];
if
(
pickedFeature
.
getProperty
(
property_name
)
!==
null
)
{
attribute_text
+=
`<tr><th>
${
property_name
}
</th><td>
${
pickedFeature
.
getProperty
(
property_name
)}
</td></tr>`
}
}
table_attribute_html
=
`
<h5>Attribute Table</h5>
<table class="table">
<tbody>
${
attribute_text
}
</tbody>
</table>
`
$
(
"
#attribute-table-area
"
).
html
(
table_attribute_html
)
}
else
{
// This case, if users click on the PIPE station
// console.log("This is PIPE")
// This case is true when the click feature is PIPE!
var
pipe_id
=
pickedFeature
.
id
.
name
var
current_pipe_STA_URL
=
`http://193.196.138.56/iqg4icity_sensor/v1.1/MultiDatastreams(
${
pipe_sta_map
[
pipe_id
]}
)/Observations?$orderby=phenomenonTime%20desc`
$
(
"
#attribute-table-area
"
).
html
(
`
<b>PIPE</b>:
${
pipe_id
}
<br>
<b>STA Multistream ID</b>:
${
pipe_sta_map
[
pipe_id
]}
<br>
<b>STA URL</b>:
${
current_pipe_STA_URL
}
`
)
get_STA_Observation_Value
(
current_pipe_STA_URL
,
function
(
sta_result
)
{
if
(
sta_result
)
{
console
.
log
(
"
STA result return successfully...
"
)
console
.
log
(
"
Drawing Chart...
"
)
var
sta_result_time_iso
=
[]
var
sta_result_observation_total_energy
=
[]
var
sta_result_observation_power
=
[]
var
sta_result_observation_vorlauf
=
[]
var
sta_result_observation_ruecklauf
=
[]
for
(
let
index
=
0
;
index
<
sta_result
.
length
;
index
++
)
{
// example
// [
// {
// "@iot.id": 451441,
// "phenomenonTime": "2022-07-21T14:30:00.000Z",
// "result": [
// 129347, Total energy kWh
// 4.6, Power kW
// 73.3, Vorlauf - degree Celsius
// 68.4 Ruecklauf - degree Celsius
// ],
// "resultTime": null,
// "@iot.selfLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)",
// "FeatureOfInterest@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/FeatureOfInterest",
// "MultiDatastream@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/MultiDatastream",
// "Datastream@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/Datastream"
// },
// ...
// ]
try
{
const
sta_result_value
=
sta_result
[
sta_result
.
length
-
index
];
if
(
sta_result_value
)
{
// only continue if the *sta_result_value* is defined.
sta_result_time_iso
.
push
(
sta_result_value
[
"
phenomenonTime
"
])
sta_result_observation_total_energy
.
push
(
sta_result_value
[
"
result
"
][
0
])
sta_result_observation_power
.
push
(
sta_result_value
[
"
result
"
][
1
])
sta_result_observation_vorlauf
.
push
(
sta_result_value
[
"
result
"
][
2
])
sta_result_observation_ruecklauf
.
push
(
sta_result_value
[
"
result
"
][
3
])
// cleaning data to draw chart...
if
(
index
==
sta_result
.
length
-
1
)
{
// last loop
inputx
=
sta_result_time_iso
inputy_vor_vs_rueck
=
[{
name
:
"
Vorlauf [degree Celsius]
"
,
data
:
sta_result_observation_vorlauf
},
{
name
:
"
Ruecklauf [degree Celsius]
"
,
data
:
sta_result_observation_ruecklauf
}
]
$
(
"
#chart_intro
"
).
show
()
drawChart
(
inputx
,
inputy_vor_vs_rueck
,
"
line
"
,
"
#chart_area
"
)
}
}
}
catch
(
error
)
{
console
.
log
(
`this loop has STA result:
${
sta_result
[
sta_result
.
length
-
index
]}
`
)
console
.
error
(
error
)
}
}
}
else
{
console
.
log
(
"
No STA result...
"
)
}
});
}
},
Cesium
.
ScreenSpaceEventType
.
LEFT_CLICK
);
\ No newline at end of file
public/application/js/drawchart.js
0 → 100644
View file @
24243e5b
// chart_type = line, bar
var
drawChart
=
function
(
data_inputx
,
data_inputy
,
chart_type
,
chart_id
)
{
if
(
typeof
chart
==
"
object
"
)
{
chart
.
destroy
();
}
var
xaxis_type
=
'
datetime
'
var
x_tooltip_format
=
'
dd MMM yy HH:mm
'
var
options
=
{
series
:
data_inputy
,
chart
:
{
type
:
chart_type
,
height
:
350
,
// foreColor: '#ccc',
foreColor
:
'
#000
'
,
},
// theme: {
// mode: 'dark',
// },
background
:
'
#141619
'
,
dataLabels
:
{
enabled
:
false
,
},
stroke
:
{
// curve: 'smooth',
width
:
1.5
},
responsive
:
[{
breakpoint
:
480
,
options
:
{
legend
:
{
position
:
'
bottom
'
,
// offsetX: -10,
offsetY
:
0
}
}
}],
tooltip
:
{
theme
:
'
dark
'
,
// format: 'dd.MM.yy HH:mm',
// datetimeFormatter: {
// year: 'yyyy',
// month: 'MMM yy',
// day: 'dd.MM.yy',
// hour: 'HH:mm dd.MM'
// }
x
:
{
show
:
true
,
format
:
x_tooltip_format
,
// formatter: undefined,
},
},
// grid: {
// borderColor: "#535A6C",
// xaxis: {
// lines: {
// show: true
// }
// }
// },
xaxis
:
{
categories
:
data_inputx
,
labels
:
{
// style: {
// fontSize: '15px',
// fontWeight: 800,
// },
datetimeFormatter
:
{
year
:
'
yyyy
'
,
month
:
'
MM.yy
'
,
day
:
"
dd.MM.yy
"
,
hour
:
'
dd.MM.yy HH:mm
'
}
},
type
:
xaxis_type
,
}
};
chart
=
new
ApexCharts
(
document
.
querySelector
(
chart_id
),
options
);
chart
.
render
();
}
\ No newline at end of file
public/application/js/pipelo_sta.js
0 → 100644
View file @
24243e5b
var
pipe_lo
=
[
{
"
devEUI
"
:
"
94193A01010005C5
"
,
"
address
"
:
"
Zollhüttengasse 9
"
,
"
lat
"
:
"
49.109733
"
,
"
long
"
:
"
9.733305
"
},
{
"
devEUI
"
:
"
94193A01010005C6
"
,
"
address
"
:
"
Lange Str. 8
"
,
"
lat
"
:
"
49.11223828741425
"
,
"
long
"
:
"
9.732123180270873
"
},
{
"
devEUI
"
:
"
94193A01010005C7
"
,
"
address
"
:
"
Glockengasse 3
"
,
"
lat
"
:
"
49.111454
"
,
"
long
"
:
"
9.733045
"
},
{
"
devEUI
"
:
"
94193A01010005C8
"
,
"
address
"
:
"
Weilertor 14
"
,
"
lat
"
:
"
49.11464640910398
"
,
"
long
"
:
"
9.732766015328936
"
},
{
"
devEUI
"
:
"
94193A01010005C9
"
,
"
address
"
:
"
Bahnhofstr. 6 (1)
"
,
"
lat
"
:
"
49.110157
"
,
"
long
"
:
"
9.734005
"
},
{
"
devEUI
"
:
"
94193A01010005CE
"
,
"
address
"
:
"
Im Weiler 1
"
,
"
lat
"
:
"
49.113261
"
,
"
long
"
:
"
9.732631
"
},
{
"
devEUI
"
:
"
94193A01010005CF
"
,
"
address
"
:
"
Lange Str. 46
"
,
"
lat
"
:
"
49.110256
"
,
"
long
"
:
"
9.732367
"
},
{
"
devEUI
"
:
"
94193A01010005D0
"
,
"
address
"
:
"
Lange Str. 53
"
,
"
lat
"
:
"
49.109968
"
,
"
long
"
:
"
9.732556
"
},
{
"
devEUI
"
:
"
94193A01010005D1
"
,
"
address
"
:
"
Bahnhofstr. 18
"
,
"
lat
"
:
"
49.109125
"
,
"
long
"
:
"
9.733989
"
},
{
"
devEUI
"
:
"
94193A01010005D2
"
,
"
address
"
:
"
Lange Str. 33/1
"
,
"
lat
"
:
"
49.110770825444256
"
,
"
long
"
:
"
9.732588104997308
"
},
{
"
devEUI
"
:
"
94193A01010005D3
"
,
"
address
"
:
"
Lange Str. 55
"
,
"
lat
"
:
"
49.1097670588301
"
,
"
long
"
:
"
9.7326409543048
"
},
{
"
devEUI
"
:
"
94193A01010005D4
"
,
"
address
"
:
""
,
"
lat
"
:
"
49.11063843049948
"
,
"
long
"
:
"
9.735850095748901
"
},
{
"
devEUI
"
:
"
94193A01010005D5
"
,
"
address
"
:
"
Bahnhofstr. 25
"
,
"
lat
"
:
"
49.109054
"
,
"
long
"
:
"
9.735130
"
},
{
"
devEUI
"
:
"
94193A01010005D6
"
,
"
address
"
:
"
Bahnhofstr. 17
"
,
"
lat
"
:
"
49.109744
"
,
"
long
"
:
"
9.734629
"
},
{
"
devEUI
"
:
"
94193A01010005D8
"
,
"
address
"
:
"
Heimbacher Gasse 2
"
,
"
lat
"
:
"
49.113037
"
,
"
long
"
:
"
9.732630
"
},
{
"
devEUI
"
:
"
94193A01010005D9
"
,
"
address
"
:
"
Im Lindach 9
"
,
"
lat
"
:
"
49.108809
"
,
"
long
"
:
"
9.735979
"
},
{
"
devEUI
"
:
"
94193A01010005DB
"
,
"
address
"
:
"
Im Lindach 1
"
,
"
lat
"
:
"
49.110038
"
,
"
long
"
:
"
9.734933
"
},
{
"
devEUI
"
:
"
94193A01010005DD
"
,
"
address
"
:
"
Heimbacher Gasse 6
"
,
"
lat
"
:
"
49.112780
"
,
"
long
"
:
"
9.732079
"
},
{
"
devEUI
"
:
"
94193A01010006C0
"
,
"
address
"
:
"
Bahnhofstr. 21
"
,
"
lat
"
:
"
49.109279
"
,
"
long
"
:
"
9.734970
"
},
{
"
devEUI
"
:
"
94193A01010006C4
"
,
"
address
"
:
"
Lange Str. 29 (1)
"
,
"
lat
"
:
"
49.111098
"
,
"
long
"
:
"
9.732556
"
},
{
"
devEUI
"
:
"
94193A010100073A
"
,
"
address
"
:
"
Hirschgraben 11-13
"
,
"
lat
"
:
"
49.111321
"
,
"
long
"
:
"
9.731331
"
},
{
"
devEUI
"
:
"
94193A010100073D
"
,
"
address
"
:
"
Lange Str. 29 (2)
"
,
"
lat
"
:
"
49.111098
"
,
"
long
"
:
"
9.732653
"
},
{
"
devEUI
"
:
"
94193A0101000745
"
,
"
address
"
:
"
Netzstation Weilerwiese Schiene 2
"
,
"
lat
"
:
"
49.11638970127192
"
,
"
long
"
:
"
9.733147184723265
"
},
{
"
devEUI
"
:
"
94193A0101000746
"
,
"
address
"
:
"
Bahnhofstr. 15
"
,
"
lat
"
:
"
49.110003
"
,
"
long
"
:
"
9.734461
"
},
{
"
devEUI
"
:
"
94193A0101000747
"
,
"
address
"
:
"
Lange Str. 38 (Kirche)
"
,
"
lat
"
:
"
49.11087122198257
"
,
"
long
"
:
"
9.731906956093749
"
},
{
"
devEUI
"
:
"
94193A010100074A
"
,
"
address
"
:
"
Bahnhofstr. 19
"
,
"
lat
"
:
"
49.109518
"
,
"
long
"
:
"
9.734868
"
},
{
"
devEUI
"
:
"
94193A010100074B
"
,
"
address
"
:
"
Lange Str. 48
"
,
"
lat
"
:
"
49.110136
"
,
"
long
"
:
"
9.732347
"
},
{
"
devEUI
"
:
"
94193A010100074D
"
,
"
address
"
:
"
"
,
"
lat
"
:
"
49.111594
"
,
"
long
"
:
"
9.734530
"
},
{
"
devEUI
"
:
"
94193A010100074E
"
,
"
address
"
:
"
Lange Str. 2
"
,
"
lat
"
:
"
49.112510
"
,
"
long
"
:
"
9.732079
"
},
{
"
devEUI
"
:
"
94193A010100074F
"
,
"
address
"
:
"
Mauerstr. 6
"
,
"
lat
"
:
"
49.112085
"
,
"
long
"
:
"
9.732937
"
},
{
"
devEUI
"
:
"
94193A0101000751
"
,
"
address
"
:
"
Mauerstr. 21
"
,
"
lat
"
:
"
49.110589
"
,
"
long
"
:
"
9.734021
"
},
{
"
devEUI
"
:
"
94193A0101000755
"
,
"
address
"
:
"
Im Lindach 8 (1)
"
,
"
lat
"
:
"
49.108996
"
,
"
long
"
:
"
9.736708
"
},
{
"
devEUI
"
:
"
94193A0101000759
"
,
"
address
"
:
"
Mauer Str. 21/1 (1)
"
,
"
lat
"
:
"
49.110511
"
,
"
long
"
:
"
9.733797
"
},
{
"
devEUI
"
:
"
94193A010100075B
"
,
"
address
"
:
"
Im Lindach 8 (2)
"
,
"
lat
"
:
"
49.108949
"
,
"
long
"
:
"
9.736767
"
},
{
"
devEUI
"
:
"
94193A010100075F
"
,
"
address
"
:
"
Bahnhofstr. 12
"
,
"
lat
"
:
"
49.109862
"
,
"
long
"
:
"
9.734294
"
},
{
"
devEUI
"
:
"
94193A0101000762
"
,
"
address
"
:
"
Bahnhofstr. 6 (2)
"
,
"
lat
"
:
"
49.110175
"
,
"
long
"
:
"
9.733973
"
},
{
"
devEUI
"
:
"
94193A010200143B
"
,
"
address
"
:
"
Wüstenrot (1)
"
,
"
lat
"
:
"
49.07746426313434
"
,
"
long
"
:
"
9.46300506591797
"
},
{
"
devEUI
"
:
"
94193A0101000764
"
,
"
address
"
:
"
Wüstenrot (2)
"
,
"
lat
"
:
"
49.075665114793
"
,
"
long
"
:
"
9.461975097656252
"
},
{
"
devEUI
"
:
"
94193A0101000765
"
,
"
address
"
:
"
Wüstenrot (3)
"
,
"
lat
"
:
"
49.07341608772624
"
,
"
long
"
:
"
9.461975097656252
"
},
{
"
devEUI
"
:
"
94193A0101000766
"
,
"
address
"
:
"
"
,
"
lat
"
:
"
49.111594
"
,
"
long
"
:
"
9.734530
"
},
{
"
devEUI
"
:
"
94193A0101000767
"
,
"
address
"
:
"
Lange Str. 40
"
,
"
lat
"
:
"
49.110510
"
,
"
long
"
:
"
9.732329
"
},
{
"
devEUI
"
:
"
94193A0101000768
"
,
"
address
"
:
"
Netzstation Weilerwiese Schiene 1
"
,
"
lat
"
:
"
49.11639178901025
"
,
"
long
"
:
"
9.732831404220839
"
},
{
"
devEUI
"
:
"
94193A0101000769
"
,
"
address
"
:
"
Wüstenrot (4)
"
,
"
lat
"
:
"
49.0711669588361
"
,
"
long
"
:
"
9.461631774902346
"
},
{
"
devEUI
"
:
"
94193A010100076A
"
,
"
address
"
:
"
Mauerstr. 21/1 (2)
"
,
"
lat
"
:
"
49.110501
"
,
"
long
"
:
"
9.733790
"
},
{
"
devEUI
"
:
"
94193A01010007C5
"
,
"
address
"
:
"
Zollhüttengasse 24
"
,
"
lat
"
:
"
49.109613
"
,
"
long
"
:
"
9.732637
"
},
{
"
devEUI
"
:
"
94193A01010007CA
"
,
"
address
"
:
"
Heimbacher Gasse 21
"
,
"
lat
"
:
"
49.112261
"
,
"
long
"
:
"
9.730727
"
},
{
"
devEUI
"
:
"
94193A01010007CE
"
,
"
address
"
:
"
Gänsberg 1
"
,
"
lat
"
:
"
49.110477
"
,
"
long
"
:
"
9.732133
"
},
{
"
devEUI
"
:
"
94193A01010007CF
"
,
"
address
"
:
"
Wüstenrot (5)
"
,
"
lat
"
:
"
49.068692799449586
"
,
"
long
"
:
"
9.46128845214844
"
},
{
"
devEUI
"
:
"
94193A0101000825
"
,
"
address
"
:
"
Zollhüttengasse 10
"
,
"
lat
"
:
"
49.109926
"
,
"
long
"
:
"
9.733291
"
},
{
"
devEUI
"
:
"
94193A0101000826
"
,
"
address
"
:
"
Lange Str. 44
"
,
"
lat
"
:
"
49.110336978502815
"
,
"
long
"
:
"
9.732188679258906
"
},
{
"
devEUI
"
:
"
94193A0101000827
"
,
"
address
"
:
"
Bahnhofstr. 28
"
,
"
lat
"
:
"
49.108569
"
,
"
long
"
:
"
9.734981
"
},
{
"
devEUI
"
:
"
94193A0101000829
"
,
"
address
"
:
"
Lange Str. 23
"
,
"
lat
"
:
"
49.111284821188725
"
,
"
long
"
:
"
9.732502501907454
"
},
{
"
devEUI
"
:
"
94193A010100082A
"
,
"
address
"
:
"
Lange Str. 47
"
,
"
lat
"
:
"
49.110150
"
,
"
long
"
:
"
9.732538
"
},
{
"
devEUI
"
:
"
94193A0101000832
"
,
"
address
"
:
"
"
,
"
lat
"
:
"
49.111594
"
,
"
long
"
:
"
9.734530
"
},
{
"
devEUI
"
:
"
94193A01010008A5
"
,
"
address
"
:
"
Testgerät Pliezhausen
"
,
"
lat
"
:
"
49.10410739462646
"
,
"
long
"
:
"
9.745154678821565
"
},
{
"
devEUI
"
:
"
94193A01010008A6
"
,
"
address
"
:
"
Bahnhofstr. 20
"
,
"
lat
"
:
"
49.108880
"
,
"
long
"
:
"
9.733999
"
},
{
"
devEUI
"
:
"
94193A01010008B0
"
,
"
address
"
:
"
Im Lindach 4
"
,
"
lat
"
:
"
49.109789
"
,
"
long
"
:
"
9.735469
"
},
{
"
devEUI
"
:
"
94193A01010008D6
"
,
"
address
"
:
"
Heimbacher Gasse 14
"
,
"
lat
"
:
"
49.112798
"
,
"
long
"
:
"
9.731505
"
},
{
"
devEUI
"
:
"
94193A01010008FD
"
,
"
address
"
:
"
Lange Str. 41
"
,
"
lat
"
:
"
49.110417
"
,
"
long
"
:
"
9.732562
"
},
{
"
devEUI
"
:
"
94193A0101000911
"
,
"
address
"
:
"
Im Weiler 26
"
,
"
lat
"
:
"
49.113834
"
,
"
long
"
:
"
9.731827
"
},
{
"
devEUI
"
:
"
94193A0101000919
"
,
"
address
"
:
"
Katharinenstr. 8
"
,
"
lat
"
:
"
49.111807
"
,
"
long
"
:
"
9.731235
"
},
{
"
devEUI
"
:
"
94193A010100091B
"
,
"
address
"
:
"
Mauerstr. 21/1 (3)
"
,
"
lat
"
:
"
49.110487
"
,
"
long
"
:
"
9.733796
"
},
{
"
devEUI
"
:
"
94193A010100091F
"
,
"
address
"
:
"
Im Weiler 6
"
,
"
lat
"
:
"
49.113438
"
,
"
long
"
:
"
9.732733
"
},
{
"
devEUI
"
:
"
94193A010100092D
"
,
"
address
"
:
"
Lange Str. 4
"
,
"
lat
"
:
"
49.112398
"
,
"
long
"
:
"
9.732138
"
},
{
"
devEUI
"
:
"
94193A0101000930
"
,
"
address
"
:
"
Kirchgasse 9 (1)
"
,
"
lat
"
:
"
49.111041485727355
"
,
"
long
"
:
"
9.732805959216694
"
},
{
"
devEUI
"
:
"
94193A0101000931
"
,
"
address
"
:
"
Kirchgasse 9 (2)
"
,
"
lat
"
:
"
49.111011
"
,
"
long
"
:
"
9.732798
"
},
{
"
devEUI
"
:
"
94193A0101000932
"
,
"
address
"
:
"
Heimbacher Gasse 5-7
"
,
"
lat
"
:
"
49.112517
"
,
"
long
"
:
"
9.731945
"
},
{
"
devEUI
"
:
"
94193A010100093A
"
,
"
address
"
:
"
Lange Str. 10
"
,
"
lat
"
:
"
49.112191
"
,
"
long
"
:
"
9.732165
"
},
{
"
devEUI
"
:
"
94193A010100093F
"
,
"
address
"
:
"
Katharinenstr. 12
"
,
"
lat
"
:
"
49.111471
"
,
"
long
"
:
"
9.731516
"
},
{
"
devEUI
"
:
"
94193A010100094B
"
,
"
address
"
:
"
Katharinenstr. 14
"
,
"
lat
"
:
"
49.111347
"
,
"
long
"
:
"
9.731643
"
},
{
"
devEUI
"
:
"
94193A0101000957
"
,
"
address
"
:
"
Wüstenrot (6)
"
,
"
lat
"
:
"
49.06576863405361
"
,
"
long
"
:
"
9.46128845214844
"
},
{
"
devEUI
"
:
"
94193A0101000A0D
"
,
"
address
"
:
"
Bahnhofstr. 14
"
,
"
lat
"
:
"
49.109725
"
,
"
long
"
:
"
9.734180
"
}
]
// draw Pipe Location
var
pipe_lo_entities
=
[];
for
(
let
i
=
0
;
i
<
pipe_lo
.
length
;
i
++
)
{
var
name_devEUI
=
pipe_lo
[
i
][
"
devEUI
"
];
var
pipe_lon
=
pipe_lo
[
i
][
"
long
"
];
var
pipe_lat
=
pipe_lo
[
i
][
"
lat
"
];
const
url
=
Cesium
.
buildModuleUrl
(
"
Assets/Textures/maki/grocery.png
"
);
pipe_lo_entities
[
i
]
=
viewer
.
entities
.
add
({
name
:
name_devEUI
,
position
:
Cesium
.
Cartesian3
.
fromDegrees
(
pipe_lon
,
pipe_lat
),
description
:
"
PIPE Station:
"
+
name_devEUI
,
billboard
:
{
// image: pinBuilder.fromText('Sensor', Cesium.Color.BLUE.withAlpha(0.9), 48).toDataURL(),
// MakiIcon List: https://github.com/mapbox/maki/tree/main/icons
// https://sandcastle.cesium.com/index.html?src=GeoJSON%20simplestyle.html
// image: pinBuilder.fromMakiIconId("hospital", Cesium.Color.RED, 48).toDataURL(),
image
:
pinBuilder
.
fromUrl
(
url
,
Cesium
.
Color
.
GREEN
,
48
).
toDataURL
(),
verticalOrigin
:
Cesium
.
VerticalOrigin
.
BOTTOM
,
heightReference
:
"
CLAMP_TO_GROUND
"
,
show
:
true
,
disableDepthTestDistance
:
999999
}
});
}
public/application/js/staconnector.js
0 → 100644
View file @
24243e5b
// var STA_IQG_URL = "http://193.196.138.56/iqg4icity_sensor/v1.1/MultiDatastreams(1)/Observations?$orderby=phenomenonTime%20desc"
function
get_STA_Observation_Value
(
STA_URL
,
cb
)
{
var
settings
=
{
"
url
"
:
STA_URL
,
"
method
"
:
"
GET
"
,
};
$
.
ajax
(
settings
).
done
(
function
(
response
)
{
console
.
log
(
response
);
try
{
var
result_value
=
response
[
"
value
"
]
// example
// [
// {
// "@iot.id": 451441,
// "phenomenonTime": "2022-07-21T14:30:00.000Z",
// "result": [
// 129347,
// 4.6,
// 73.3,
// 68.4
// ],
// "resultTime": null,
// "@iot.selfLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)",
// "FeatureOfInterest@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/FeatureOfInterest",
// "MultiDatastream@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/MultiDatastream",
// "Datastream@iot.navigationLink": "http://193.196.138.56/iqg4icity_sensor/v1.1/Observations(451441)/Datastream"
// },
// ...
// ]
cb
(
response
[
"
value
"
])
}
catch
(
error
)
{
console
.
error
(
error
)
cb
(
null
)
}
});
}
var
pipe_sta_map
=
{
"
94193A01010005C5
"
:
1
,
"
94193A01010005C6
"
:
2
,
"
94193A01010005C7
"
:
3
,
"
94193A01010005C8
"
:
4
,
"
94193A01010005C9
"
:
5
,
"
94193A01010005CE
"
:
6
,
"
94193A01010005CF
"
:
7
,
"
94193A01010005D0
"
:
8
,
"
94193A01010005D1
"
:
9
,
"
94193A01010005D2
"
:
10
,
"
94193A01010005D3
"
:
11
,
"
94193A01010005D4
"
:
12
,
"
94193A01010005D5
"
:
13
,
"
94193A01010005D6
"
:
14
,
"
94193A01010005D8
"
:
15
,
"
94193A01010005D9
"
:
16
,
"
94193A01010005DB
"
:
17
,
"
94193A01010005DD
"
:
18
,
"
94193A01010006C0
"
:
19
,
"
94193A01010006C4
"
:
20
,
"
94193A010100073A
"
:
21
,
"
94193A010100073D
"
:
22
,
"
94193A0101000745
"
:
23
,
"
94193A0101000746
"
:
24
,
"
94193A0101000747
"
:
25
,
"
94193A010100074A
"
:
26
,
"
94193A010100074B
"
:
27
,
"
94193A010100074D
"
:
28
,
"
94193A010100074E
"
:
29
,
"
94193A010100074F
"
:
30
,
"
94193A0101000751
"
:
31
,
"
94193A0101000755
"
:
32
,
"
94193A0101000759
"
:
33
,
"
94193A010100075B
"
:
34
,
"
94193A010100075F
"
:
35
,
"
94193A0101000762
"
:
36
,
"
94193A010200143B
"
:
37
,
"
94193A0101000764
"
:
38
,
"
94193A0101000765
"
:
39
,
"
94193A0101000766
"
:
40
,
"
94193A0101000767
"
:
41
,
"
94193A0101000768
"
:
42
,
"
94193A0101000769
"
:
43
,
"
94193A010100076A
"
:
44
,
"
94193A01010007C5
"
:
45
,
"
94193A01010007CA
"
:
46
,
"
94193A01010007CE
"
:
47
,
"
94193A01010007CF
"
:
48
,
"
94193A0101000825
"
:
49
,
"
94193A0101000826
"
:
50
,
"
94193A0101000827
"
:
51
,
"
94193A0101000829
"
:
52
,
"
94193A010100082A
"
:
53
,
"
94193A0101000832
"
:
54
,
"
94193A01010008A5
"
:
55
,
"
94193A01010008A6
"
:
56
,
"
94193A01010008B0
"
:
57
,
"
94193A01010008D6
"
:
58
,
"
94193A01010008FD
"
:
59
,
"
94193A0101000911
"
:
60
,
"
94193A0101000919
"
:
61
,
"
94193A010100091B
"
:
62
,
"
94193A010100091F
"
:
63
,
"
94193A010100092D
"
:
64
,
"
94193A0101000930
"
:
65
,
"
94193A0101000931
"
:
66
,
"
94193A0101000932
"
:
67
,
"
94193A010100093A
"
:
68
,
"
94193A010100093F
"
:
69
,
"
94193A010100094B
"
:
70
,
"
94193A0101000957
"
:
71
,
"
94193A0101000A0D
"
:
72
,
}
var
reverse_mapping
=
{
1
:
"
94193A01010005C5
"
,
2
:
"
94193A01010005C6
"
,
3
:
"
94193A01010005C7
"
,
4
:
"
94193A01010005C8
"
,
5
:
"
94193A01010005C9
"
,
6
:
"
94193A01010005CE
"
,
7
:
"
94193A01010005CF
"
,
8
:
"
94193A01010005D0
"
,
9
:
"
94193A01010005D1
"
,
10
:
"
94193A01010005D2
"
,
11
:
"
94193A01010005D3
"
,
12
:
"
94193A01010005D4
"
,
13
:
"
94193A01010005D5
"
,
14
:
"
94193A01010005D6
"
,
15
:
"
94193A01010005D8
"
,
16
:
"
94193A01010005D9
"
,
17
:
"
94193A01010005DB
"
,
18
:
"
94193A01010005DD
"
,
19
:
"
94193A01010006C0
"
,
20
:
"
94193A01010006C4
"
,
21
:
"
94193A010100073A
"
,
22
:
"
94193A010100073D
"
,
23
:
"
94193A0101000745
"
,
24
:
"
94193A0101000746
"
,
25
:
"
94193A0101000747
"
,
26
:
"
94193A010100074A
"
,
27
:
"
94193A010100074B
"
,
28
:
"
94193A010100074D
"
,
29
:
"
94193A010100074E
"
,
30
:
"
94193A010100074F
"
,
31
:
"
94193A0101000751
"
,
32
:
"
94193A0101000755
"
,
33
:
"
94193A0101000759
"
,
34
:
"
94193A010100075B
"
,
35
:
"
94193A010100075F
"
,
36
:
"
94193A0101000762
"
,
37
:
"
94193A010200143B
"
,
38
:
"
94193A0101000764
"
,
39
:
"
94193A0101000765
"
,
40
:
"
94193A0101000766
"
,
41
:
"
94193A0101000767
"
,
42
:
"
94193A0101000768
"
,
43
:
"
94193A0101000769
"
,
44
:
"
94193A010100076A
"
,
45
:
"
94193A01010007C5
"
,
46
:
"
94193A01010007CA
"
,
47
:
"
94193A01010007CE
"
,
48
:
"
94193A01010007CF
"
,
49
:
"
94193A0101000825
"
,
50
:
"
94193A0101000826
"
,
51
:
"
94193A0101000827
"
,
52
:
"
94193A0101000829
"
,
53
:
"
94193A010100082A
"
,
54
:
"
94193A0101000832
"
,
55
:
"
94193A01010008A5
"
,
56
:
"
94193A01010008A6
"
,
57
:
"
94193A01010008B0
"
,
58
:
"
94193A01010008D6
"
,
59
:
"
94193A01010008FD
"
,
60
:
"
94193A0101000911
"
,
61
:
"
94193A0101000919
"
,
62
:
"
94193A010100091B
"
,
63
:
"
94193A010100091F
"
,
64
:
"
94193A010100092D
"
,
65
:
"
94193A0101000930
"
,
66
:
"
94193A0101000931
"
,
67
:
"
94193A0101000932
"
,
68
:
"
94193A010100093A
"
,
69
:
"
94193A010100093F
"
,
70
:
"
94193A010100094B
"
,
71
:
"
94193A0101000957
"
,
72
:
"
94193A0101000A0D
"
,
}
\ No newline at end of file
public/application/js/staconnector.xlsx
0 → 100644
View file @
24243e5b
File added
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment