55 < title > 地物编辑</ title >
66 < link href ="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css " rel ="stylesheet ">
77 < link rel ="stylesheet " href ="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.css ">
8- < script type ="text/javascript " src ="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.js "> </ script >
9- < script type ="text/javascript " src ="../../dist/iclient9-leaflet.js "> </ script >
10- < script type ="text/javascript ">
11- var map , marker , featureGroup , id , resultLayer ,
12- baseUrl = "http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/World" ,
13- urlCapital = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest/data/datasources/World/datasets/Capitals" ,
14- url = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest/data" ;
15- function init ( ) {
16- map = L . map ( 'map' , {
17- preferCanvas : true ,
18- crs : L . CRS . EPSG4326 ,
19- center : { lon : 110 , lat : 30 } ,
20- maxZoom : 18 ,
21- zoom : 3
22- } ) ;
23- L . supermap . tiledMapLayer ( baseUrl ) . addTo ( map ) ;
24- featureGroup = L . featureGroup ( ) . addTo ( map ) ;
25- initFeature ( ) ;
26- }
27- function initFeature ( ) {
28- var polygon = L . polygon ( [ [ 10 , 100 ] , [ 10 , 124 ] , [ 40 , 124 ] , [ 40 , 100 ] , [ 10 , 100 ] ] ) ;
29- var getFeatureParams = new GetFeaturesByGeometryParameters ( {
30- datasetNames : [ "World:Capitals" ] ,
31- geometry : polygon ,
32- spatialQueryMode : "INTERSECT"
33- } ) ;
34- L . supermap . getFeaturesService ( url ) . getFeaturesByGeometry ( getFeatureParams ) . on ( "complete" , function ( serviceResult ) {
35- resultLayer = L . geoJSON ( serviceResult . result , {
36- onEachFeature : function ( feature , layer ) {
37- layer . bindPopup ( "首都:" + feature . properties . CAPITAL ) ;
38- }
39- } ) . addTo ( map ) ;
40- } ) ;
41- }
42- function addMarker ( ) {
43- if ( ! featureGroup . hasLayer ( marker ) ) {
44- var xmax = 120 , xmin = 100 , ymax = 50 , ymin = 20 ;
45- marker = L . circleMarker ( [
46- Math . floor ( Math . random ( ) * ( ymax - ymin + 1 ) + ymin ) ,
47- Math . floor ( Math . random ( ) * ( xmax - xmin + 1 ) + xmin )
48- ] , { color : "red" } ) ;
49- featureGroup . addLayer ( marker ) ;
50- map . setView ( marker . getLatLng ( ) ) ;
51- } else {
52- alert ( "请先清除结果" ) ;
53- }
54- }
55- function commit ( ) {
56- var me = this ;
57- if ( featureGroup . hasLayer ( marker ) ) {
58- var addFeatureParams = new EditFeaturesParameters ( {
59- features : marker ,
60- editType : "add" ,
61- returnContent : true
62- } ) ;
63- L . supermap . editFeaturesService ( urlCapital ) . editFeatures ( addFeatureParams ) . on ( "complete" , function ( serviceResult ) {
64- if ( serviceResult . result . succeed ) {
65- id = serviceResult . result [ 0 ] ;
66- featureGroup . removeFrom ( map ) ;
67- resultLayer . removeFrom ( map ) ;
68- me . initFeature ( ) ;
69- }
70- } ) ;
71- } else {
72- alert ( "请先添加地物" ) ;
73- }
74- }
75- function clearLayer ( ) {
76- var me = this ;
77- if ( ! featureGroup . hasLayer ( marker ) ) {
78- return ;
79- }
80- if ( id ) {
81- var deleteParams = new EditFeaturesParameters ( {
82- IDs : [ id ] ,
83- editType : "delete"
84- } ) ;
85- L . supermap . editFeaturesService ( urlCapital ) . editFeatures ( deleteParams ) . on ( "complete" , function ( serviceResult ) {
86- if ( serviceResult . result . succeed ) {
87- resultLayer . removeFrom ( map ) ;
88- me . initFeature ( ) ;
89- } else {
90- alert ( "删除失败" )
91- }
92- } ) ;
93- }
94- if ( featureGroup && featureGroup . hasLayer ( marker ) ) {
95- featureGroup . removeLayer ( marker ) ;
96- marker = null ;
97- }
98- }
99- </ script >
1008</ head >
101- < body onload ="init() " onbeforeunload ="closeLayer() " style =" margin: 0;overflow: hidden;background: #fff;width: 100%;height:600px; ">
9+ < body onload ="init() "
10+ style =" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0; ">
10211< div id ="toolbar " style ="height:44px; padding-top: 6px; text-align: right ">
10312 < input type ="button " class ="btn btn-default " value ="添加地物 " onclick ="addMarker() "/>
10413 < input type ="button " class ="btn btn-default " value ="提交添加 " onclick ="commit() "/>
10514 < input type ="button " class ="btn btn-default " value ="清除结果 " onclick ="clearLayer() "/>
10615</ div >
10716< div id ="map " style ="margin:0 auto;width: 100%;height: 100%;border: 1px solid #dddddd "> </ div >
10817</ body >
18+
19+ < script type ="text/javascript " src ="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.js "> </ script >
20+ < script type ="text/javascript " src ="../../dist/iclient9-leaflet.js "> </ script >
21+ < script type ="text/javascript ">
22+ var map , marker , featureGroup , id , resultLayer ,
23+ baseUrl = "http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/World" ,
24+ urlCapital = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest/data/datasources/World/datasets/Capitals" ,
25+ url = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest/data" ;
26+ function init ( ) {
27+ map = L . map ( 'map' , {
28+ preferCanvas : true ,
29+ crs : L . CRS . EPSG4326 ,
30+ center : { lon : 110 , lat : 30 } ,
31+ maxZoom : 18 ,
32+ zoom : 3
33+ } ) ;
34+ L . supermap . tiledMapLayer ( baseUrl ) . addTo ( map ) ;
35+ featureGroup = L . featureGroup ( ) . addTo ( map ) ;
36+ initFeature ( ) ;
37+ }
38+
39+ function initFeature ( ) {
40+ var polygon = L . polygon ( [ [ 10 , 100 ] , [ 10 , 124 ] , [ 40 , 124 ] , [ 40 , 100 ] , [ 10 , 100 ] ] ) ;
41+ var getFeatureParams = new GetFeaturesByGeometryParameters ( {
42+ datasetNames : [ "World:Capitals" ] ,
43+ geometry : polygon ,
44+ spatialQueryMode : "INTERSECT"
45+ } ) ;
46+ L . supermap . getFeaturesService ( url ) . getFeaturesByGeometry ( getFeatureParams ) . on ( "complete" , function ( serviceResult ) {
47+ resultLayer = L . geoJSON ( serviceResult . result , {
48+ onEachFeature : function ( feature , layer ) {
49+ layer . bindPopup ( "首都:" + feature . properties . CAPITAL ) ;
50+ }
51+ } ) . addTo ( map ) ;
52+ } ) ;
53+ }
54+
55+ function addMarker ( ) {
56+ if ( ! featureGroup . hasLayer ( marker ) ) {
57+ var xmax = 120 , xmin = 100 , ymax = 50 , ymin = 20 ;
58+ marker = L . circleMarker ( [
59+ Math . floor ( Math . random ( ) * ( ymax - ymin + 1 ) + ymin ) ,
60+ Math . floor ( Math . random ( ) * ( xmax - xmin + 1 ) + xmin )
61+ ] , { color : "red" } ) ;
62+ featureGroup . addLayer ( marker ) ;
63+ featureGroup . addTo ( map ) ;
64+ map . setView ( marker . getLatLng ( ) ) ;
65+ } else {
66+ alert ( "请先清除结果" ) ;
67+ }
68+ }
69+
70+ function commit ( ) {
71+ var me = this ;
72+ if ( featureGroup . hasLayer ( marker ) ) {
73+ var addFeatureParams = new EditFeaturesParameters ( {
74+ features : marker ,
75+ editType : "add" ,
76+ returnContent : true
77+ } ) ;
78+ L . supermap . editFeaturesService ( urlCapital ) . editFeatures ( addFeatureParams ) . on ( "complete" , function ( serviceResult ) {
79+ if ( serviceResult . result . succeed ) {
80+ id = serviceResult . result [ 0 ] ;
81+ featureGroup . removeFrom ( map ) ;
82+ me . initFeature ( ) ;
83+ }
84+ } ) ;
85+ } else {
86+ alert ( "请先添加地物" ) ;
87+ }
88+ }
89+
90+ function clearLayer ( ) {
91+ var me = this ;
92+ if ( ! featureGroup . hasLayer ( marker ) ) {
93+ return ;
94+ }
95+ if ( id ) {
96+ var deleteParams = new EditFeaturesParameters ( {
97+ IDs : [ id ] ,
98+ editType : "delete"
99+ } ) ;
100+ L . supermap . editFeaturesService ( urlCapital ) . editFeatures ( deleteParams ) . on ( "complete" , function ( serviceResult ) {
101+ if ( serviceResult . result . succeed ) {
102+ resultLayer . removeFrom ( map ) ;
103+ me . initFeature ( ) ;
104+ } else {
105+ alert ( "删除失败" )
106+ }
107+ } ) ;
108+ }
109+ if ( featureGroup && featureGroup . hasLayer ( marker ) ) {
110+ featureGroup . removeLayer ( marker ) ;
111+ marker = null ;
112+ }
113+ }
114+ </ script >
109115</ html >
0 commit comments