首页 / 浏览问题 / 三维GIS / 问题详情
iClient3D 三维面转化二维面
204EXP 2016年11月15日

我想在三维模型中进行空间查询,通过MeasureArea得到三维面对象,然后调用convertToGeoRegion()方法转换成二维面对象。但是转化失败了
代码是这样的

1个回答

参考一下这个

//解析三维面    
for (var i = 0; i < line3D.get_partCount() ; i++) {
var point3Ds = line3D.getPart(i);
var points=new Array();
for (var j = 0; j < point3Ds.get_count() ; j++) {
var point3D = point3Ds.get_item(j);
 points[j]=new SuperMap.Geometry.Point(point3D.x,point3D.y);
}

//构造二维面
var linearRings = new SuperMap.Geometry.LinearRing(points),
region = new SuperMap.Geometry.Polygon([linearRings]);
//添加到二维地图
var feature = new SuperMap.Feature.Vector();
feature.geometry = region,
feature.style = style;
vectorLayer.addFeatures(feature);
//缩放到绘制区域
var bounds=feature.geometry.getBounds();
map.zoomToExtent(bounds);

//构造三维面
var geoRegion = new SuperMap.Web.Core.GeoRegion3D();
geoRegion.addPart(point3Ds);
 
var feature3d = new SuperMap.Web.Core.Feature3D();
feature3d.set_geometry(geoRegion);
//设置三维面风格
var style3d = new SuperMap.Web.Core.Style3D();
style3d.set_fillForeColor(new SuperMap.Web.Core.Color(44,77,190,204));       

feature3d.set_style3D(style3d);
//添加到三维场景
trackingLayer3D.add(feature3d, "geoRegion");

}
3,389EXP 2016年11月15日
...