1+ <!DOCTYPE html>
2+ < html >
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < title > 范围分析作业</ title >
6+ < link href ="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css " rel ="stylesheet ">
7+ < link rel ="stylesheet " href ="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.css ">
8+ </ head >
9+ < body style =" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0; ">
10+ < div id ="model " class ="modal fade " tabindex ="-1 " role ="dialog ">
11+ < div class ="modal-dialog " role ="document ">
12+ < div class ="modal-content ">
13+ < div class ="modal-header ">
14+ < h4 class ="modal-title "> 提示</ h4 >
15+ </ div >
16+ < div class ="modal-body ">
17+ < p > 正在创建范围分析作业...</ p >
18+ </ div >
19+ </ div >
20+ </ div >
21+ </ div >
22+ < div id ="map " style ="width: 100%;height:100% "> </ div >
23+
24+ < script src ="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js "> </ script >
25+ < script src ="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js "> </ script >
26+ < script type ="text/javascript " src ="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.js "> </ script >
27+ < script type ="text/javascript " src ="../../dist/iclient9-leaflet.min.js "> </ script >
28+ < script type ="text/javascript ">
29+ var layer , processingJobsUrl = "http://117.122.248.69:8090/iserver/services/spatialprocessing/rest/v1/jobs" ,
30+ token = 'oZdJwpVhYnPNEAt8-ykB-Cy39gEZkdvPZ9knTbCdui1SoBeXWVCwx-j5tOVSScotsUX1qwZF44X9m6wNME1kBg..' ,
31+ map = L . map ( 'map' , {
32+ crs : L . CRS . TianDiTu_WGS84 ,
33+ center : [ 40.75 , - 73.95 ] ,
34+ maxZoom : 18 ,
35+ zoom : 12
36+ } ) ,
37+ info = L . control ( { position : 'topright' } ) ,
38+ query = [ ] ;
39+ L . supermap . tiandituTileLayer ( "http://t{s}.tianditu.com/vec_c/wmts" , {
40+ layer : "vec" ,
41+ tilematrixSet : "c"
42+ } ) . addTo ( map ) ;
43+
44+ info . onAdd = function ( ) {
45+ var popup = L . DomUtil . create ( 'div' ) ;
46+ popup . style = 'width:420px' ;
47+ popup . innerHTML = "<div class='panel panel-default'>" +
48+ "<div class='panel-heading'>" +
49+ "<h3 class='panel-title'>范围分析作业</h3>" +
50+ "</div><div class='panel-body'>" +
51+ "<div class='input-group'>" +
52+ "<span class='input-group-addon'>输入数据 </span>" +
53+ "<input id='datasetName' type='text' class='form-control'placeholder='ProcessingData_processing_newyorkZone_R'/>" +
54+ "</div><p><div class='input-group'>" +
55+ "<span class='input-group-addon'>汇总类型 </span> <div>" +
56+ "<select class='form-control' id='type' name='clientType'>" +
57+ "<option value='SUMMARYMESH' selected='selected'>网格面汇总</option>" +
58+ "<option value='SUMMARYREGION'>多边形汇总</option>" +
59+ "</select></div></div><p>" +
60+ "<div class='input-group'>" +
61+ "<span class='input-group-addon'>网格面汇总类型 </span>" +
62+ "<select class='form-control' id='meshType' name='clientType'>" +
63+ "<option value='0' selected='selected'>四边形网格</option>" +
64+ "<option value='1'>六边形网格</option>" +
65+ "</select></div><p><div class='input-group'>" +
66+ "<span class='input-group-addon'>分析范围 </span>" +
67+ "<input id='query' type='text' class='form-control' placeholder='-74.050,40.650,-73.850,40.850'/>" +
68+ "</div><p><p><div class='input-group'>" +
69+ "<span class='input-group-addon'>以标准属性字段统计</span>" +
70+ "<span class='form-control'>" +
71+ "<input id='standardSummaryFields' type='checkbox'>" +
72+ "</span><span class='input-group-addon'>以权重字段统计 </span>" +
73+ "<span class='form-control'><input id='weightedSummaryFields' type='checkbox'>" +
74+ "</span></div><p><div id='standardS' style='display: none'>" +
75+ "<div class='input-group'><span class='input-group-addon'>属性字段统计模式 </span>" +
76+ "<input id='standardStatisticModes' type='text' class='form-control' placeholder='max'/>" +
77+ "</div><p><div class='input-group'>" +
78+ "<span class='input-group-addon'>属性字段名 </span>" +
79+ "<input id='standardFields' type='text' class='form-control' placeholder='LocationID'/>" +
80+ "</div><p></div><div id='weightS' style='display: none'>" +
81+ "<div class='input-group'><span class='input-group-addon'>权重字段统计模式 </span>" +
82+ "<input id='weightedStatisticModes' type='text' class='form-control' placeholder='max'/>" +
83+ "</div><p><div class='input-group'><span class='input-group-addon'>权重字段名 </span>" +
84+ "<input id='weightedFields' type='text' class='form-control' placeholder='LocationID'/>" +
85+ "</div><p></div><div class='input-group'>" +
86+ "<span class='input-group-addon'>网格大小 </span>" +
87+ "<input id='resolution' type='text' class='form-control' placeholder='100'/>" +
88+ "</div><p><div class='input-group'><span class='input-group-addon'>网格大小单位 </span>" +
89+ "<select class='form-control' id='meshSizeUnit' name='clientType'>" +
90+ "<option value='Meter' selected='selected'>Meter</option>" +
91+ "<option value='Kilometer'>Kilometer</option>" +
92+ "<option value='Yard'>Yard</option>" +
93+ "<option value='Foot'>Foot</option>" +
94+ "<option value='Mile'>Mile</option>" +
95+ "</select></div><p><div class='input-group'>" +
96+ "<span class='input-group-addon'>是否统计长度或面积</span>" +
97+ "<span class='form-control'><input id='sumShape' type='checkbox' checked>" +
98+ "</span></div><p><div align='right'>" +
99+ "<input type='button' id='btn' class='btn btn-primary' value='创建'/></div></div>"
100+ handleMapEvent ( popup , this . _map ) ;
101+ return popup ;
102+ } ;
103+ info . addTo ( map ) ;
104+
105+ $ ( "#standardSummaryFields" ) . change ( function ( e ) {
106+ if ( e . target . checked ) {
107+ $ ( "#standardS" ) . show ( ) ;
108+ return ;
109+ }
110+ $ ( "#standardS" ) . hide ( ) ;
111+ } ) ;
112+ $ ( "#weightedSummaryFields" ) . change ( function ( e ) {
113+ if ( e . target . checked ) {
114+ $ ( "#weightS" ) . show ( ) ;
115+ return ;
116+ }
117+ $ ( "#weightS" ) . hide ( ) ;
118+ } ) ;
119+ ( $ ( '#query' ) . val ( ) || $ ( '#query' ) . attr ( 'placeholder' ) ) . split ( ',' ) . map ( function ( el ) {
120+ return query . push ( parseFloat ( el ) ) ;
121+ } ) ;
122+ var processingJobsService = new L . supermap . processingJobsService ( processingJobsUrl ) ;
123+ SuperMap . SecurityManager . registerToken ( "http://117.122.248.69:8090" , token ) ;
124+
125+ $ ( '#btn' ) . on ( 'click' , function ( ) {
126+ $ ( '#btn' ) . prop ( 'disabled' , true ) ;
127+ $ ( "#model" ) . modal ( { show : true , backdrop : 'static' , keyboard : false } ) ;
128+ if ( map && layer ) {
129+ map . removeLayer ( layer ) ;
130+ }
131+ var summaryRegionJobParameter = new SuperMap . SummaryRegionJobParameter ( {
132+ datasetName : $ ( '#datasetName' ) . val ( ) || $ ( '#datasetName' ) . attr ( 'placeholder' ) ,
133+ regionDataset : $ ( '#type option:selected' ) . attr ( 'value' ) === 'SUMMARYREGION' ? $ ( '#datasetName' ) . val ( ) || $ ( '#datasetName' ) . attr ( 'placeholder' ) : undefined ,
134+ type : $ ( '#type option:selected' ) . attr ( 'value' ) ,
135+ meshType : $ ( '#meshType option:selected' ) . attr ( 'value' ) ,
136+ query : L . latLngBounds ( L . latLng ( query [ 1 ] , query [ 0 ] ) , L . latLng ( query [ 3 ] , query [ 2 ] ) ) ,
137+ standardSummaryFields : $ ( '#standardSummaryFields' ) . get ( 0 ) . checked ,
138+ weightedSummaryFields : $ ( '#weightedSummaryFields' ) . get ( 0 ) . checked ,
139+ standardStatisticModes : $ ( '#standardStatisticModes' ) . val ( ) || $ ( '#standardStatisticModes' ) . attr ( 'placeholder' ) ,
140+ standardFields : $ ( '#standardFields' ) . val ( ) || $ ( '#standardFields' ) . attr ( 'placeholder' ) ,
141+ weightedStatisticModes : $ ( '#weightedStatisticModes' ) . val ( ) || $ ( '#weightedStatisticModes' ) . attr ( 'placeholder' ) ,
142+ weightedFields : $ ( '#weightedFields' ) . val ( ) || $ ( '#weightedFields' ) . attr ( 'placeholder' ) ,
143+ resolution : $ ( '#resolution' ) . val ( ) || $ ( '#resolution' ) . attr ( 'placeholder' ) ,
144+ meshSizeUnit : $ ( '#meshSizeUnit option:selected' ) . attr ( 'value' ) ,
145+ sumShape : $ ( '#sumShape' ) . get ( 0 ) . checked
146+ } ) ;
147+ processingJobsService . addSummaryRegionJob ( summaryRegionJobParameter , function ( serviceResult ) {
148+ if ( serviceResult . error ) {
149+ $ ( '#btn' ) . prop ( 'disabled' , false ) ;
150+ $ ( "#model" ) . modal ( 'hide' ) ;
151+ showAlert ( "创建失败!<br>" + serviceResult . error . errorMsg , false ) ;
152+ return ;
153+ }
154+ serviceResult . result . setting . serviceInfo . targetServiceInfos . map ( function ( info ) {
155+ if ( info . serviceType === 'RESTMAP' ) {
156+ SuperMap . FetchRequest . get ( info . serviceAddress + '/maps' ) . then ( function ( response ) {
157+ return response . json ( ) ;
158+ } ) . then ( function ( result ) {
159+ var mapUrl = result [ 0 ] . path ;
160+ layer = L . supermap . imageMapLayer ( mapUrl , { noWrap : true , transparent : true } ) ;
161+ layer . addTo ( map ) ;
162+ $ ( "#model" ) . modal ( 'hide' ) ;
163+ $ ( '#btn' ) . prop ( 'disabled' , false ) ;
164+ } ) ;
165+ }
166+ } ) ;
167+ } ) ;
168+ } ) ;
169+
170+ function handleMapEvent ( div , map ) {
171+ if ( ! div || ! map ) {
172+ return ;
173+ }
174+ div . addEventListener ( 'mouseover' , function ( ) {
175+ map . dragging . disable ( ) ;
176+ map . scrollWheelZoom . disable ( ) ;
177+ map . doubleClickZoom . disable ( ) ;
178+ } ) ;
179+ div . addEventListener ( 'mouseout' , function ( ) {
180+ map . dragging . enable ( ) ;
181+ map . scrollWheelZoom . enable ( ) ;
182+ map . doubleClickZoom . enable ( ) ;
183+ } ) ;
184+ }
185+
186+ function showAlert ( msg , state ) {
187+ var className = "alert-" ;
188+ className += state ? "success" : "danger" ;
189+ if ( ! $ ( '#msg_container' ) [ 0 ] ) {
190+ var alertDiv = $ ( "<div class='alert alert-dismissible' id='msg_container' role='alert' " +
191+ "style='z-index:800;position: absolute;top: 20px;margin:auto;left: 40%;width:400px;display: none'>" +
192+ "<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button>" +
193+ "<strong><p id='msg'></p></strong></div>" ) ;
194+ $ ( 'body' ) . append ( alertDiv )
195+ }
196+ $ ( '#msg_container' ) . addClass ( className ) ;
197+ $ ( '#msg_container' ) . slideDown ( 300 ) ;
198+ $ ( '#msg' ) . html ( msg ) ;
199+ }
200+ </ script >
201+ </ body >
202+ </ html >
0 commit comments