Skip to content

Commit e64df1f

Browse files
committed
openlayers裁剪分析优化
1 parent b6807f2 commit e64df1f

File tree

2 files changed

+123
-37
lines changed

2 files changed

+123
-37
lines changed

website/public/static/demo/openlayers/example/IGServer/AnalysisService/E03GeometryClip.htm

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,7 @@
165165

166166
}
167167
//执行多边形裁剪分析
168-
function polygonClip()
169-
{
168+
function polygonClip(){
170169
//显示进度条
171170
startPressBar();
172171
var resultname = resultBaseUrl + "clipByPolyAnalysisResultLayer" + getCurentTime();
@@ -185,6 +184,23 @@
185184
clipParam.execute(AnalysisSuccess, "post", false, "json", ()=>{});
186185
}
187186

187+
//分析成功后的回调
188+
function AnalysisSuccess(data) {
189+
//停止进度条
190+
stopPressBar();
191+
if (!data.results) {
192+
alert("裁剪失败,请检查参数!");
193+
}
194+
else {
195+
if (data.results.length != 0) {
196+
var resultLayerUrl = data.results[0].Value || data.results[0].value;
197+
let gdbp = resultBaseUrl+resultLayerUrl;
198+
changeGdbpStyle(gdbp);
199+
200+
}
201+
}
202+
}
203+
188204
function changeGdbpStyle(gdbp) {
189205
var pointObj = new Array();
190206
pointObj[0] = new Zondy.Object.Point2D(-180, 90);
@@ -224,7 +240,7 @@
224240
//设置查询分页号
225241
queryParam.pageIndex = 0;
226242
//设置查询要素数目
227-
queryParam.recordNumber = 20;
243+
queryParam.recordNumber = 2000;
228244
//实例化矢量图层查询服务对象
229245
var queryService = new Zondy.Service.QueryLayerFeature(queryParam, {
230246
ip: "192.168.23.113",
@@ -287,35 +303,9 @@
287303
map.addLayer(vectorLayer);
288304
resultLayerArr.push(vectorLayer);
289305
}, () => {
290-
291306
});
292307
}
293308

294-
295-
//分析成功后的回调
296-
function AnalysisSuccess(data) {
297-
//停止进度条
298-
stopPressBar();
299-
if (!data.results) {
300-
alert("裁剪失败,请检查参数!");
301-
}
302-
else {
303-
if (data.results.length != 0) {
304-
var resultLayerUrl = data.results[0].Value || data.results[0].value;
305-
// //将结果图层添加到地图视图中显示
306-
// var resultLayer = new Zondy.Map.GdbpLayer("MapGIS IGS BuffAnalyResultLayer", [resultBaseUrl+resultLayerUrl], {
307-
// ip:`${ip}`,
308-
// port: `${port}`, //访问IGServer的端口号,.net版为6163,Java版为8089,
309-
// isBaseLayer: false
310-
// });
311-
let gdbp = resultBaseUrl+resultLayerUrl;
312-
changeGdbpStyle(gdbp);
313-
// map.addLayer(resultLayer);
314-
// resultLayerArr.push(resultLayer);
315-
}
316-
}
317-
}
318-
319309
function deleteAll()
320310
{
321311
while(resultLayerArr.length>0)

website/public/static/demo/openlayers/example/IGServer/AnalysisService/E04LayerClipAnalysis.htm

Lines changed: 104 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,18 +134,114 @@
134134
else {
135135
if (data.results.length != 0) {
136136
var resultLayerUrl = data.results[0].Value || data.results[0].value;
137-
//将结果图层添加到地图视图中显示
138-
var resultLayer = new Zondy.Map.GdbpLayer("MapGIS IGS BuffAnalyResultLayer", [resultBaseUrl+resultLayerUrl], {
139-
ip:`${ip}`,
140-
port: `${port}`, //访问IGServer的端口号,.net版为6163,Java版为8089,
141-
isBaseLayer: false
142-
});
143-
map.addLayer(resultLayer);
144-
resultLayerArr.push(resultLayer);
137+
let gdbp = resultBaseUrl+resultLayerUrl;
138+
changeGdbpStyle(gdbp);
145139
}
146140
}
147141
}
148142

143+
function changeGdbpStyle(gdbp) {
144+
var pointObj = new Array();
145+
pointObj[0] = new Zondy.Object.Point2D(-180, 90);
146+
pointObj[1] = new Zondy.Object.Point2D(180, 90);
147+
pointObj[2] = new Zondy.Object.Point2D(180, -90);
148+
pointObj[3] = new Zondy.Object.Point2D(-180, -90);
149+
pointObj[4] = new Zondy.Object.Point2D(-180, 90);
150+
151+
var Polygon = new Zondy.Object.Polygon(pointObj);
152+
//初始化查询结构对象,设置查询结构包含几何信息
153+
var queryStruct = new Zondy.Service.QueryFeatureStruct();
154+
//是否包含几何图形信息
155+
queryStruct.IncludeGeometry = true;
156+
//是否包含属性信息
157+
queryStruct.IncludeAttribute = true;
158+
//是否包含图形显示参数
159+
queryStruct.IncludeWebGraphic = false;
160+
//指定查询规则
161+
var rule = new Zondy.Service.QueryFeatureRule({
162+
//是否将要素的可见性计算在内
163+
EnableDisplayCondition: false,
164+
//是否完全包含
165+
MustInside: false,
166+
//是否仅比较要素的外包矩形
167+
CompareRectOnly: false,
168+
//是否相交
169+
Intersect: true
170+
});
171+
//实例化查询参数对象
172+
var queryParam = new Zondy.Service.QueryByLayerParameter(gdbp, {
173+
geometry: Polygon,
174+
resultFormat: 'json',
175+
struct: queryStruct,
176+
rule: rule
177+
});
178+
179+
//设置查询分页号
180+
queryParam.pageIndex = 0;
181+
//设置查询要素数目
182+
queryParam.recordNumber = 2000;
183+
//实例化矢量图层查询服务对象
184+
var queryService = new Zondy.Service.QueryLayerFeature(queryParam, {
185+
ip: "192.168.23.113",
186+
port: "8089",
187+
});
188+
//执行查询操作,querySuccess为查询回调函数
189+
queryService.query((res) => {
190+
console.log('res', res);
191+
let polygons = [];
192+
let geojson = {
193+
type: 'FeatureCollection',
194+
features: []
195+
}
196+
res.SFEleArray.forEach(f => {
197+
let dots = f.fGeom.LinGeom[0].Line.Arcs[0].Dots;
198+
let points = [];
199+
dots.forEach(d => {
200+
points.push([d.x, d.y])
201+
})
202+
let feature= {
203+
"type": "Feature",
204+
"properties": {},
205+
"geometry": {
206+
"type": "LineString" ,
207+
"coordinate": [
208+
points
209+
]
210+
}
211+
}
212+
geojson.features.push(feature);
213+
var polygon = new ol.Feature({
214+
geometry: new ol.geom.LineString(points)
215+
});
216+
//设置区样式信息
217+
polygon.setStyle(new ol.style.Style({
218+
//填充色
219+
fill: new ol.style.Fill({
220+
color: 'rgba(255, 0, 0, 0.5)'
221+
}),
222+
//边线颜色
223+
stroke: new ol.style.Stroke({
224+
color: '#ffcc33',
225+
width: 2
226+
})
227+
}));
228+
polygons.push(polygon);
229+
});
230+
231+
var vectorSource = new ol.source.Vector();
232+
vectorSource.addFeatures(polygons);
233+
234+
//创建一个图层
235+
var vectorLayer = new ol.layer.Vector({
236+
source: vectorSource,
237+
zIndex:5
238+
});
239+
//将绘制层添加到地图容器中
240+
map.addLayer(vectorLayer);
241+
resultLayerArr.push(vectorLayer);
242+
}, () => {});
243+
}
244+
149245
function deleteAll()
150246
{
151247
while(resultLayerArr.length>0)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy