1+ <!DOCTYPE html>
2+ < html >
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < title > 空间分析服务-缓冲区分析</ title >
6+ < link rel ="stylesheet " href ="../css/bootstrap.min.css ">
7+ < link rel ="stylesheet " href ="https://openlayers.org/en/v4.0.1/css/ol.css ">
8+ < script type ="text/javascript " src ="https://openlayers.org/en/v4.0.1/build/ol-debug.js "> </ script >
9+ < script type ="text/javascript " src ="../../dist/SuperMapiClient9 for OL3.js "> </ script >
10+
11+ < script type ="text/javascript ">
12+ var map , roadLine , resultLayer , service , dsBufferAnalystParameters ,
13+ baseUrl = "http://support.supermap.com.cn:8090/iserver/services/map-changchun/rest/maps/长春市区图" ,
14+ serviceUrl = "http://support.supermap.com.cn:8090/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst" ;
15+ var extent = [ 48.4 , - 7668.25 , 8958.85 , - 55.58 ] ;
16+ var projection = new ol . proj . Projection ( {
17+ extent : extent ,
18+ units : 'm'
19+ } ) ;
20+ function init ( ) {
21+ var mapService = new ol . supermap . MapService ( baseUrl ) ;
22+ mapService . on ( "complete" , function ( serviceResult ) {
23+ var mapJSONObj = serviceResult . element . result ;
24+ map = new ol . Map ( {
25+ target : 'map' ,
26+ view : new ol . View ( {
27+ center : [ 5105 , - 3375 ] ,
28+ zoom : 6 ,
29+ projection : projection
30+ } )
31+ } ) ;
32+ var layer = new ol . layer . Tile ( {
33+ source : new ol . supermap . Tile ( ol . supermap . Tile . optionsFromMapJSON ( baseUrl , mapJSONObj ) )
34+ } ) ;
35+ map . addLayer ( layer ) ;
36+
37+ roadLine = new ol . geom . LineString ( [
38+ [ 5305.19551436013 , - 3376.9669111768926 ] ,
39+ [ 5075.3145648369318 , - 3378.0037556404409 ] ,
40+ [ 5006.0235999418364 , - 3358.8890067038628 ] ,
41+ [ 4960.9674060199022 , - 3349.3316322355736 ] ,
42+ [ 4933.319287022352 , - 3337.3849141502124 ]
43+ ] ) ;
44+
45+ var vectorSource = new ol . source . Vector ( {
46+ features : [ new ol . Feature ( roadLine ) ]
47+ } ) ;
48+ var vectorLayer = new ol . layer . Vector ( {
49+ source : vectorSource ,
50+ style : new ol . style . Style ( {
51+ stroke : new ol . style . Stroke ( {
52+ color : 'blue' ,
53+ width : 3
54+ } ) ,
55+ fill : new ol . style . Fill ( {
56+ color : 'rgba(0, 0, 255, 0.1)'
57+ } )
58+ } )
59+ } ) ;
60+ map . addLayer ( vectorLayer ) ;
61+
62+ service = new ol . supermap . SpatialAnalystService ( serviceUrl ) ;
63+ dsBufferAnalystParameters = new DatasetBufferAnalystParameters ( {
64+ dataset : "RoadLine2@Changchun" ,
65+ filterQueryParameter : new FilterParameter ( {
66+ attributeFilter : "NAME='团结路'"
67+ } ) ,
68+ bufferSetting : new BufferSetting ( {
69+ endType : SuperMap . REST . BufferEndType . ROUND ,
70+ leftDistance : { value : 10 } ,
71+ rightDistance : { value : 10 } ,
72+ semicircleLineSegment : 10
73+ } )
74+ } ) ;
75+ service . on ( 'complete' , function ( serviceResult ) {
76+ var vectorSource = new ol . source . Vector ( {
77+ features : ( new ol . format . GeoJSON ( ) ) . readFeatures ( serviceResult . element . result )
78+ } )
79+ resultLayer = new ol . layer . Vector ( {
80+ source : vectorSource ,
81+ style : new ol . style . Style ( {
82+ stroke : new ol . style . Stroke ( {
83+ color : 'red' ,
84+ width : 1
85+ } ) ,
86+ fill : new ol . style . Fill ( {
87+ color : 'rgba(255, 0, 0, 0.1)'
88+ } )
89+ } )
90+ } ) ;
91+ map . addLayer ( resultLayer ) ;
92+ } ) ;
93+ } ) ;
94+ mapService . getMapStatus ( ) ;
95+ }
96+
97+ function bufferAnalystProcess ( ) {
98+ clearLayer ( ) ;
99+ service . bufferAnalysis ( dsBufferAnalystParameters ) ;
100+ }
101+
102+ function clearLayer ( ) {
103+ if ( resultLayer ) {
104+ map . removeLayer ( resultLayer ) ;
105+ }
106+ }
107+
108+ </ script >
109+ </ head >
110+ < body onload ="init() " style =" margin: 0;overflow: hidden;background: #fff; ">
111+ < div id ="toolbar " style =" position: relative;padding-top: 10px; padding-bottom: 10px; ">
112+ < input type ="button " class ="btn btn-primary " value ="缓冲区分析 " onclick ="bufferAnalystProcess() "/>
113+ < input type ="button " class ="btn btn-primary " value ="清除 " onclick ="clearLayer() "/>
114+ </ div >
115+
116+ < div id ="map " style ="margin:0 auto;position: relative; height: 510px;border: 1px solid #3473b7; "> </ div >
117+ </ body >
118+ </ html >
0 commit comments