脚本宝典收集整理的这篇文章主要介绍了初遇Citymaker (六),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这次我们来说下要素构建
```javasctiptimport { cw5 } from "../index.js";
export const geometryCreator = {};
//原生类型值反映射枚举; type, 代表高程
let innerType = {0: "unknown",1: "point",2: "modelPoint",4: "POI",6: "circularArc",10: "line",11: "circle",30: "polyline",31: "ring",32: "compoundLine",50: "polygon",51: "triMesh",70: "collection",71: "multiPoint",72: "multiPolyline",73: "multiPolygon",74: "multiTrimesh",77: "closedTriMesh",100: "pointCloud"};
/**
创建点要素
xyz 坐标
m 测量值
id ID
*/geometryCreator.createPoint = function(x, y, z, m = 0, id = 0) {var point = cw5.__g.geometryFactory.createPoint(cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);
if (x != null && y != null && z != null) {point.setCoords(x, y, z, m, id);}
if (point != null) {let geometry =geometryCreator.createGeometry(point)return geometry;}}
/**
创建线要素
paths Number[][]
*/geometryCreator.createPolyline = function(paths) {let latitude = null;let longitude = null;let height = null;let position = cw5.__g.new_Vector3;let pathpoint = cw5.__g.geometryFactory.createPoint(cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);let line = cw5.__g.geometryFactory.createGeometry(cw5.innerConfig.gviGeometryType.gviGeometryPolyline, cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);//向线路中添加点if (paths != null) {for (let i = 0; i < paths.length; i++) {latitude = paths[i][0];longitude = paths[i][1];height = paths[i][2];
position.set(latitude, longitude, height);pathpoint.position = position;line.appendPoint(pathpoint);}}if (line != null) {let geometry =geometryCreator.createGeometry(line)return geometry;}};
/**
创建POI要素
xyz 坐标
m 测量值
id ID
*/geometryCreator.createPOI = function(x, y, z, m = 0, id = 0) {
var point = cw5.__g.geometryFactory.createGeometry(cw5.innerConfig.gviGeometryType.gviGeometryPOI, cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);//初始化矢量点对象point.setCoords(x, y, z, m, id);
if (point != null) {let geometry =geometryCreator.createGeometry(point)return geometry;}};
/**
创建多边形要素
paths Number[][]
*/geometryCreator.createPolygon = function(paths) {let polygon = cw5.__g.geometryFactory.createGeometry(cw5.innerConfig.gviGeometryType.gviGeometryPolygon, cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZM);if (polygon == null) {return;}
if (paths != null) {var exteriorRing = polygon.exteriorRing;
let latitude = null;let longitude = null;let height = null;let position = cw5.__g.new_Vector3;let pathpoint = cw5.__g.geometryFactory.createPoint(cw5.innerConfig.gviVertexAttribute.gviVertexAttributeZ);
//向边界中添加点for (let i = 0; i < paths.length; i++) {latitude = paths[i][0];longitude = paths[i][1];height = paths[i][2];position.set(latitude, longitude, height);pathpoint.position = position;exteriorRing.appendPoint(pathpoint);}// exteriorRing.reverseOrientation()}
let geometry =geometryCreator.createGeometry(polygon)return geometry;};
/**
/**
创建geometry 从原生对象
object citymaker原生geometry
*/geometryCreator.createGeometry = function(object) {let type =innerType[object.geometryType] ;
let geometry={
以上是脚本宝典为你收集整理的初遇Citymaker (六)全部内容,希望文章能够帮你解决初遇Citymaker (六)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。