Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Eric Duminil
RegionChooser
Commits
b6d2a5d8
Commit
b6d2a5d8
authored
2 years ago
by
Eric Duminil
Browse files
Options
Download
Email Patches
Plain Diff
Trying many stuff. Checklist instead of single link.
parent
eb1c4870
master
develop
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
+34
-20
...stadt/regionchooser/website/script/simstadt_openlayers.js
with
34 additions
and
20 deletions
+34
-20
src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
+
34
-
20
View file @
b6d2a5d8
var
regionChooser
=
(
function
(){
var
regionChooser
=
(
function
(){
var
publicScope
=
{};
var
publicScope
=
{};
var
fromJavaFX
=
navigator
.
userAgent
.
indexOf
(
'
JavaFX
'
)
!==
-
1
;
var
fromJavaFX
=
navigator
.
userAgent
.
indexOf
(
'
JavaFX
'
)
!==
-
1
;
//NOTE: Could do without jQuery
var
dataPanel
=
$
(
'
#dataPanel
'
);
var
dataPanel
=
$
(
'
#dataPanel
'
);
var
wgs84Sphere
=
new
ol
.
Sphere
(
6378137
);
var
wgs84Sphere
=
new
ol
.
Sphere
(
6378137
);
var
gmlId
=
0
;
var
gmlId
=
0
;
...
@@ -9,21 +10,21 @@ var regionChooser = (function(){
...
@@ -9,21 +10,21 @@ var regionChooser = (function(){
$
(
"
html
"
).
addClass
(
"
wait
"
);
$
(
"
html
"
).
addClass
(
"
wait
"
);
}
}
// Hash function
// Hash function
. For testing purposes in browser (no Feature ID is available)
const
cyrb53
=
(
str
,
seed
=
0
)
=>
{
const
cyrb53
=
(
str
,
seed
=
0
)
=>
{
let
h1
=
0xdeadbeef
^
seed
,
let
h1
=
0xdeadbeef
^
seed
,
h2
=
0x41c6ce57
^
seed
;
h2
=
0x41c6ce57
^
seed
;
for
(
let
i
=
0
,
ch
;
i
<
str
.
length
;
i
++
)
{
for
(
let
i
=
0
,
ch
;
i
<
str
.
length
;
i
++
)
{
ch
=
str
.
charCodeAt
(
i
);
ch
=
str
.
charCodeAt
(
i
);
h1
=
Math
.
imul
(
h1
^
ch
,
2654435761
);
h1
=
Math
.
imul
(
h1
^
ch
,
2654435761
);
h2
=
Math
.
imul
(
h2
^
ch
,
1597334677
);
h2
=
Math
.
imul
(
h2
^
ch
,
1597334677
);
}
}
h1
=
Math
.
imul
(
h1
^
(
h1
>>>
16
),
2246822507
)
^
Math
.
imul
(
h2
^
(
h2
>>>
13
),
3266489909
);
h1
=
Math
.
imul
(
h1
^
(
h1
>>>
16
),
2246822507
)
^
Math
.
imul
(
h2
^
(
h2
>>>
13
),
3266489909
);
h2
=
Math
.
imul
(
h2
^
(
h2
>>>
16
),
2246822507
)
^
Math
.
imul
(
h1
^
(
h1
>>>
13
),
3266489909
);
h2
=
Math
.
imul
(
h2
^
(
h2
>>>
16
),
2246822507
)
^
Math
.
imul
(
h1
^
(
h1
>>>
13
),
3266489909
);
return
4294967296
*
(
2097151
&
h2
)
+
(
h1
>>>
0
);
return
4294967296
*
(
2097151
&
h2
)
+
(
h1
>>>
0
);
};
};
var
osm_layer
=
new
ol
.
layer
.
Tile
({
var
osm_layer
=
new
ol
.
layer
.
Tile
({
source
:
new
ol
.
source
.
OSM
()
source
:
new
ol
.
source
.
OSM
()
...
@@ -173,12 +174,13 @@ const cyrb53 = (str, seed = 0) => {
...
@@ -173,12 +174,13 @@ const cyrb53 = (str, seed = 0) => {
// TODO: Add checkbox + label +
// TODO: Add checkbox + label +
// TODO: Add submit.
// TODO: Add submit.
// TODO: If possible, highlight the corresponding polygon when hovering above a name.
// TODO: If possible, highlight the corresponding polygon when hovering above a name.
console
.
log
(
"
Feature name :
"
+
feature
[
"
name
"
]);
console
.
log
(
"
Feature ID :
"
+
feature
.
getId
());
if
(
fromJavaFX
)
{
if
(
fromJavaFX
)
{
link
+=
"
<a href=
\"
#
\"
onclick=
\"
regionChooser.downloadRegionFrom
"
+
feature
[
"
source
"
]
+
"
(
"
+
feature
.
getId
()
link
+=
'
<input type="checkbox" id="check_
'
+
feature
.
getId
()
+
'
" class="select_citygml"><label for="check_
'
+
feature
.
getId
()
+
'
">
'
+
feature
[
'
name
'
]
+
'
</label>
'
;
+
"
);return false;
\"
>
"
+
feature
[
"
name
"
]
+
"
</a>
"
;
}
else
{
}
else
{
h
=
cyrb53
(
feature
[
'
name
'
]);
h
=
cyrb53
(
feature
[
'
name
'
]);
link
+=
'
<input type="checkbox" id="check
'
+
h
+
'
"><label for="check
'
+
h
+
'
">
'
+
feature
[
'
name
'
]
+
'
</label>
'
;
link
+=
'
<input type="checkbox" id="check
_
'
+
h
+
'
"
class="select_citygml"
><label for="check
_
'
+
h
+
'
">
'
+
feature
[
'
name
'
]
+
'
</label>
'
;
}
}
link
+=
"
(
"
+
citygml_percentage
+
"
%
"
;
link
+=
"
(
"
+
citygml_percentage
+
"
%
"
;
...
@@ -201,9 +203,10 @@ const cyrb53 = (str, seed = 0) => {
...
@@ -201,9 +203,10 @@ const cyrb53 = (str, seed = 0) => {
var
polygonArea
=
sketch
.
getGeometry
().
getArea
();
var
polygonArea
=
sketch
.
getGeometry
().
getArea
();
var
intersection_found
=
false
;
var
intersection_found
=
false
;
intersections
.
clear
();
intersections
.
clear
();
//NOTE: getFeatures seems to not be sorted anymore. :-/
features_by_project
=
groupBy
(
kml_source
.
getFeatures
(),
"
project
"
);
features_by_project
=
groupBy
(
kml_source
.
getFeatures
(),
"
project
"
);
Object
.
keys
(
features_by_project
).
sort
().
forEach
(
function
(
project
)
{
Object
.
keys
(
features_by_project
).
forEach
(
function
(
project
)
{
features
=
features_by_project
[
project
];
features
=
features_by_project
[
project
];
features_and_intersections
=
features
.
map
(
f
=>
[
f
,
findIntersection
(
f
,
polygon
)]).
filter
(
l
=>
l
[
1
]
!==
undefined
);
features_and_intersections
=
features
.
map
(
f
=>
[
f
,
findIntersection
(
f
,
polygon
)]).
filter
(
l
=>
l
[
1
]
!==
undefined
);
if
(
features_and_intersections
.
length
>
0
){
if
(
features_and_intersections
.
length
>
0
){
...
@@ -213,7 +216,11 @@ const cyrb53 = (str, seed = 0) => {
...
@@ -213,7 +216,11 @@ const cyrb53 = (str, seed = 0) => {
}
}
});
});
if
(
!
intersection_found
)
{
if
(
intersection_found
)
{
document
.
getElementById
(
"
download
"
).
style
.
visibility
=
'
visible
'
;
}
else
{
document
.
getElementById
(
"
download
"
).
style
.
visibility
=
'
hidden
'
;
dataPanel
.
append
(
"
No intersection found with any CityGML file.<br/>
\n
"
);
dataPanel
.
append
(
"
No intersection found with any CityGML file.<br/>
\n
"
);
}
}
}
}
...
@@ -272,6 +279,8 @@ const cyrb53 = (str, seed = 0) => {
...
@@ -272,6 +279,8 @@ const cyrb53 = (str, seed = 0) => {
dataPanel
.
append
(
wgs84_coords
+
"
<br/>
\n
"
);
dataPanel
.
append
(
wgs84_coords
+
"
<br/>
\n
"
);
}
}
dataPanel
.
append
(
"
<h3 class='clean'>Area :
"
+
(
area
/
10000
).
toFixed
(
1
)
+
"
ha
\n
"
);
dataPanel
.
append
(
"
<h3 class='clean'>Area :
"
+
(
area
/
10000
).
toFixed
(
1
)
+
"
ha
\n
"
);
dataPanel
.
append
(
'
<button type="button" onclick="regionChooser.clickety_click()" id="download" style="visibility:hidden">Download Region</button>
'
);
dataPanel
.
append
(
'
<br/>
\n
'
);
findIntersections
();
findIntersections
();
}
}
...
@@ -352,6 +361,11 @@ const cyrb53 = (str, seed = 0) => {
...
@@ -352,6 +361,11 @@ const cyrb53 = (str, seed = 0) => {
$
(
"
html
"
).
removeClass
(
"
wait
"
);
$
(
"
html
"
).
removeClass
(
"
wait
"
);
console
.
log
(
"
READY!
"
);
console
.
log
(
"
READY!
"
);
}
}
publicScope
.
clickety_click
=
function
()
{
console
.
log
(
"
You clicked pretty well
"
);
document
.
querySelectorAll
(
"
input.select_citygml
"
).
forEach
(
x
=>
console
.
log
(
x
));
}
focusOnMap
();
focusOnMap
();
//var regionChooser = publicScope; //NOTE: In order to open closure. For debugging
//var regionChooser = publicScope; //NOTE: In order to open closure. For debugging
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Explore
Projects
Groups
Snippets