@@ -4,33 +4,66 @@ function adjust_textarea(h) {
44 h . style . height = ( h . scrollHeight ) + "px" ;
55}
66
7- function displayProjectTypeFormular ( projectType ) {
8- if ( projectType == 1 ) {
9- document . getElementById ( "BuildAreaProjectFormular" ) . style . display = "block" ;
10- document . getElementById ( "FootprintProjectFormular" ) . style . display = "None" ,
11- document . getElementById ( "ChangeDetectionProjectFormular" ) . style . display = "None" ;
12- document . getElementById ( "tileServerBuildArea" ) . value = "bing" ;
13- displayTileServer ( "bing" , "BuildArea" , "" ) ;
14- setTimeout ( function ( ) { BuildAreaMap . invalidateSize ( ) } , 400 ) ;
15- } else if ( projectType == 2 ) {
16- document . getElementById ( "FootprintProjectFormular" ) . style . display = "block" ;
17- document . getElementById ( "BuildAreaProjectFormular" ) . style . display = "None" ;
18- document . getElementById ( "ChangeDetectionProjectFormular" ) . style . display = "None" ;
19- document . getElementById ( "tileServerFootprint" ) . value = "bing" ;
20- displayTileServer ( "bing" , "Footprint" , "" ) ;
21- } else if ( projectType == 3 ) {
22- document . getElementById ( "FootprintProjectFormular" ) . style . display = "None"
23- document . getElementById ( "BuildAreaProjectFormular" ) . style . display = "None" ;
24- document . getElementById ( "ChangeDetectionProjectFormular" ) . style . display = "block" ;
25- document . getElementById ( "tileServerChangeDetectionA" ) . value = "bing" ;
26- document . getElementById ( "tileServerChangeDetectionB" ) . value = "bing" ;
27- displayTileServer ( "bing" , "ChangeDetectionA" , "" ) ;
28- displayTileServer ( "bing" , "ChangeDetectionB" , "" ) ;
29- setTimeout ( function ( ) { ChangeDetectionMap . invalidateSize ( ) } , 400 ) ;
7+ function initForm ( ) {
8+ initMap ( ) ;
9+ displayProjectTypeForm ( "build_area" )
10+ }
11+
12+
13+ function initMap ( ) {
14+ ProjectAoiMap = L . map ( 'geometryMap' ) . setView ( [ 0.0 , 0.0 ] , 4 ) ;
15+ L . tileLayer ( 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png' , {
16+ attribution : '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' ,
17+ subdomains : [ 'a' , 'b' , 'c' ]
18+ } ) . addTo ( ProjectAoiMap ) ;
19+ console . log ( 'added map' ) ;
20+ aoiLayer = L . geoJSON ( ) . addTo ( ProjectAoiMap ) ;
21+ setTimeout ( function ( ) { ProjectAoiMap . invalidateSize ( ) } , 400 ) ;
22+
3023 }
24+
25+ function displayProjectTypeForm ( projectType ) {
26+ document . getElementById ( "projectType" ) . value = projectType ;
27+ switch ( projectType ) {
28+ case "build_area" :
29+ displayTileServer ( "bing" , "A" ) ;
30+ document . getElementById ( "groupSize" ) . value = 120 ;
31+ document . getElementById ( "form_project_aoi_geometry" ) . style . display = "block" ;
32+ document . getElementById ( "form_project_task_geometry" ) . style . display = "None" ;
33+ document . getElementById ( "form_zoom_level" ) . style . display = "block" ;
34+ document . getElementById ( "form_tile_server_a" ) . style . display = "block" ;
35+ document . getElementById ( "form_tile_server_b" ) . style . display = "None" ;
36+ setTimeout ( function ( ) { ProjectAoiMap . invalidateSize ( ) } , 400 ) ;
37+ break ;
38+ case "footprint" :
39+ displayTileServer ( "bing" , "A" ) ;
40+ document . getElementById ( "groupSize" ) . value = 25 ;
41+ document . getElementById ( "form_project_aoi_geometry" ) . style . display = "None" ;
42+ document . getElementById ( "form_project_task_geometry" ) . style . display = "block" ;
43+ document . getElementById ( "form_zoom_level" ) . style . display = "None" ;
44+ document . getElementById ( "form_tile_server_a" ) . style . display = "block" ;
45+ document . getElementById ( "form_tile_server_b" ) . style . display = "None" ;
46+ break ;
47+ case "change_detection" :
48+ case "completeness" :
49+ displayTileServer ( "bing" , "A" ) ;
50+ displayTileServer ( "bing" , "B" ) ;
51+ if ( projectType == "change_detection" ) {
52+ document . getElementById ( "groupSize" ) . value = 25 ;
53+ } else {
54+ document . getElementById ( "groupSize" ) . value = 80 ;
55+ }
56+ document . getElementById ( "form_project_aoi_geometry" ) . style . display = "block" ;
57+ document . getElementById ( "form_project_task_geometry" ) . style . display = "None" ;
58+ document . getElementById ( "form_zoom_level" ) . style . display = "block" ;
59+ document . getElementById ( "form_tile_server_a" ) . style . display = "block" ;
60+ document . getElementById ( "form_tile_server_b" ) . style . display = "block" ;
61+ setTimeout ( function ( ) { ProjectAoiMap . invalidateSize ( ) } , 400 ) ;
62+ break ;
63+ }
3164}
3265
33- function addTileServerCredits ( tileServer , projectType , which ) {
66+ function addTileServerCredits ( tileServerName , which ) {
3467 var credits = {
3568 "bing" : "© 2019 Microsoft Corporation, Earthstar Geographics SIO" ,
3669 "maxar_premium" : "© 2019 Maxar" ,
@@ -41,40 +74,35 @@ function addTileServerCredits (tileServer, projectType, which) {
4174 "sinergise" : "© 2019 Sinergise" ,
4275 "custom" : "Please add imagery credits here."
4376 }
44-
45- document . getElementById ( "tileServerCredits" + projectType + which ) . value = credits [ tileServer ]
77+ document . getElementById ( "tileServer" + which + "Credits" ) . value = credits [ tileServerName ]
4678}
4779
4880
49- function displayTileServer ( t , projectType , which ) {
50- tileServer = t . value
51- if ( tileServer == "custom" ) {
52- document . getElementById ( "tileServerUrlField" + projectType + which ) . style . display = "block"
53- document . getElementById ( "tileServerLayerNameField" + projectType + which ) . style . display = "block" ;
54- } else if ( tileServer == "sinergise" ) {
55- document . getElementById ( "tileServerUrlField" + projectType + which ) . style . display = "None" ;
56- document . getElementById ( "tileServerLayerNameField" + projectType + which ) . style . display = "block" ;
57- } else {
58- document . getElementById ( "tileServerUrlField" + projectType + which ) . style . display = "None" ;
59- document . getElementById ( "tileServerLayerNameField" + projectType + which ) . style . display = "None" ;
81+ function displayTileServer ( tileServerName , which ) {
82+ switch ( tileServerName ) {
83+ case "custom" :
84+ document . getElementById ( "tileServer" + which + "UrlField" ) . style . display = "block" ;
85+ document . getElementById ( "tileServer" + which + "LayerNameField" ) . style . display = "block" ;
86+ break ;
87+ case "sinergise" :
88+ document . getElementById ( "tileServer" + which + "UrlField" ) . style . display = "None" ;
89+ document . getElementById ( "tileServer" + which + "LayerNameField" ) . style . display = "block" ;
90+ break ;
91+ default :
92+ document . getElementById ( "tileServer" + which + "UrlField" ) . style . display = "None" ;
93+ document . getElementById ( "tileServer" + which + "LayerNameField" ) . style . display = "None" ;
6094 }
61- addTileServerCredits ( tileServer , projectType , which )
95+ addTileServerCredits ( tileServerName , which )
6296}
6397
6498function clear_fields ( ) {
6599 console . log ( 'clear fields.' )
66100 document . getElementById ( 'projectNumber' ) . value = 1
67- document . getElementById ( 'geometry ' ) . value = null
101+ document . getElementById ( 'inputAoi ' ) . value = null
68102 document . getElementById ( 'geometryInfo' ) . innerHTML = ''
69103 document . getElementById ( 'geometryContent' ) . innerHTML = ''
70- BuildAreaLayer . clearLayers ( )
71- document . getElementById ( 'geometryChangeDetection' ) . value = null
72- document . getElementById ( 'geometryChangeDetectionInfo' ) . innerHTML = ''
73- document . getElementById ( 'geometryChangeDetectionContent' ) . innerHTML = ''
74- ChangeDetectionLayer . clearLayers ( )
75- //document.getElementById('imageText').innerHTML = ''
76- //document.getElementById('imageFile').src = ''
77- displayProjectTypeFormular ( 1 )
104+ aoiLayer . clearLayers ( )
105+ displayProjectTypeForm ( "build_area" )
78106 }
79107
80108function displaySuccessMessage ( ) {
@@ -89,30 +117,18 @@ function displayImportForm() {
89117function openFile ( event ) {
90118 var input = event . target ;
91119
92- var info_element_id = event . target . id + 'Info'
93- var content_element_id = event . target . id + 'Content'
94- var map_element_id = event . target . id + 'Map'
95-
96- var info_output = document . getElementById ( info_element_id ) ;
120+ // clear info field
121+ var info_output = document . getElementById ( "geometryInfo" ) ;
97122 info_output . innerHTML = '' ;
98123 info_output . style . display = 'block'
99124
100- var content_output = document . getElementById ( content_element_id ) ;
101-
102- if ( event . target . id === 'geometry' ) {
103- var map = BuildAreaMap
104- var layer = BuildAreaLayer
105- var zoomLevel = parseInt ( document . getElementById ( 'zoomLevel' ) . value )
106- } else {
107- var map = ChangeDetectionMap
108- var layer = ChangeDetectionLayer
109- var zoomLevel = parseInt ( document . getElementById ( 'zoomLevelChangeDetection' ) . value )
110- }
125+ // clear map layers
126+ aoiLayer . clearLayers ( )
111127
112128 // Check file size before loading
113129 var filesize = input . files [ 0 ] . size ;
114- if ( filesize > 2.5 * 1024 * 1024 ) {
115- var err = 'filesize is too big (max 2.5MB ): ' + filesize / ( 1000 * 1000 )
130+ if ( filesize > 1 * 1024 * 1024 ) {
131+ var err = 'filesize is too big (max 1MB ): ' + filesize / ( 1000 * 1000 )
116132 info_output . innerHTML = '<b>Error reading GeoJSON file</b><br>' + err ;
117133 info_output . style . display = 'block'
118134 } else {
@@ -145,8 +161,8 @@ function openFile(event) {
145161 info_output . innerHTML += 'Feature Type: ' + type + '<br>' ;
146162 info_output . style . display = 'block'
147163
148- // check project size
149-
164+ // check project size, based on zoom level
165+ var zoomLevel = parseInt ( document . getElementById ( 'zoomLevel' ) . value ) ;
150166 area = turf . area ( feature ) / 1000000 // area in square kilometers
151167 maxArea = ( 23 - zoomLevel ) * ( 23 - zoomLevel ) * 200
152168 console . log ( 'project size: ' + area + ' sqkm' )
@@ -157,21 +173,16 @@ function openFile(event) {
157173 info_output . style . display = 'block'
158174
159175 // add feature to map
160- layer . clearLayers ( )
161- layer . addData ( geojsonData ) ;
162- map . fitBounds ( layer . getBounds ( ) ) ;
176+ aoiLayer . addData ( geojsonData ) ;
177+ ProjectAoiMap . fitBounds ( aoiLayer . getBounds ( ) ) ;
163178 console . log ( 'added input geojson feature' )
164179
165180 // add text to html object
166181 info_output . innerHTML += 'Project seems to be valid :)' ;
167182 info_output . style . display = 'block'
168183
169- if ( event . target . id === 'geometry' ) {
170- BuildAreaGeometry = text
171- } else {
172- ChangeDetectionGeometry = text
173- }
174-
184+ // set project aoi geometry
185+ projectAoiGeometry = text
175186 }
176187 catch ( err ) {
177188 info_output . innerHTML = '<b>Error reading GeoJSON file</b><br>' + err ;
@@ -202,30 +213,9 @@ function openImageFile(event) {
202213 reader . readAsDataURL ( input . files [ 0 ] ) ;
203214 } ;
204215
205- function initMap ( ) {
206- BuildAreaMap = L . map ( 'geometryMap' ) . setView ( [ 0.0 , 0.0 ] , 4 ) ;
207- L . tileLayer ( 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png' , {
208- attribution : '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' ,
209- subdomains : [ 'a' , 'b' , 'c' ]
210- } ) . addTo ( BuildAreaMap ) ;
211- console . log ( 'added map' ) ;
212- BuildAreaLayer = L . geoJSON ( ) . addTo ( BuildAreaMap ) ;
213- setTimeout ( function ( ) { BuildAreaMap . invalidateSize ( ) } , 400 ) ;
214-
215- ChangeDetectionMap = L . map ( 'geometryChangeDetectionMap' ) . setView ( [ 0.0 , 0.0 ] , 4 ) ;
216- L . tileLayer ( 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png' , {
217- attribution : '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' ,
218- subdomains : [ 'a' , 'b' , 'c' ]
219- } ) . addTo ( ChangeDetectionMap ) ;
220- console . log ( 'added map' ) ;
221- ChangeDetectionLayer = L . geoJSON ( ) . addTo ( ChangeDetectionMap ) ;
222- setTimeout ( function ( ) { ChangeDetectionMap . invalidateSize ( ) } , 400 ) ;
223- }
224-
225-
226216function closeModal ( ) {
227217 var modal = document . getElementById ( "uploadModal" ) ;
228218 modal . style . display = "none" ;
229219 var modalSuccess = document . getElementById ( "modalSuccess" ) ;
230220 modalSuccess . style . display = "none" ;
231- }
221+ }
0 commit comments