@@ -143,11 +143,13 @@ export class ServerGeometry {
143143 len = geoParts . length ;
144144 if ( len > 0 ) {
145145 if ( len === 1 ) {
146- return new Point ( geoPoints [ 0 ] . x , geoPoints [ 0 ] . y ) ;
146+ const { x, y, z, m} = geoPoints [ 0 ] ;
147+ return new Point ( [ x , y , z , m ] ) ;
147148 } else {
148149 var pointList = [ ] ;
149150 for ( let i = 0 ; i < len ; i ++ ) {
150- pointList . push ( new Point ( geoPoints [ i ] . x , geoPoints [ i ] . y ) ) ;
151+ const { x, y, z, m} = geoPoints [ i ] ;
152+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
151153 }
152154 return new MultiPoint ( pointList ) ;
153155 }
@@ -170,7 +172,8 @@ export class ServerGeometry {
170172 if ( len === 1 ) {
171173 let pointList = [ ] ;
172174 for ( let i = 0 ; i < geoParts [ 0 ] ; i ++ ) {
173- pointList . push ( new Point ( geoPoints [ i ] . x , geoPoints [ i ] . y ) ) ;
175+ const { x, y, z, m} = geoPoints [ i ] ;
176+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
174177 }
175178 //判断线是否闭合,如果闭合,则返回LinearRing,否则返回LineString
176179 if ( pointList [ 0 ] . equals ( pointList [ geoParts [ 0 ] - 1 ] ) ) {
@@ -183,7 +186,8 @@ export class ServerGeometry {
183186 for ( let i = 0 ; i < len ; i ++ ) {
184187 let pointList = [ ] ;
185188 for ( let j = 0 ; j < geoParts [ i ] ; j ++ ) {
186- pointList . push ( new Point ( geoPoints [ j ] . x , geoPoints [ j ] . y ) ) ;
189+ const { x, y, z, m} = geoPoints [ j ] ;
190+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
187191 }
188192 lineList . push ( new LineString ( pointList ) ) ;
189193 geoPoints . splice ( 0 , geoParts [ i ] ) ;
@@ -213,7 +217,9 @@ export class ServerGeometry {
213217 if ( len > 0 ) {
214218 if ( len === 1 ) {
215219 for ( i = 0 , pointList = [ ] ; i < geoParts [ 0 ] ; i ++ ) {
216- pointList . push ( new Point ( geoPoints [ i ] . x , geoPoints [ i ] . y , geoPoints [ i ] . type ) ) ;
220+ const { x, y, z, m, type} = geoPoints [ i ] ;
221+ const p = new Point ( [ x , y , z , m ] , type ) ;
222+ pointList . push ( p ) ;
217223 }
218224 //判断线是否闭合,如果闭合,则返回LinearRing,否则返回LineString
219225 if ( pointList [ 0 ] . equals ( pointList [ geoParts [ 0 ] - 1 ] ) ) {
@@ -226,7 +232,8 @@ export class ServerGeometry {
226232 } else {
227233 for ( i = 0 , lineList = [ ] ; i < len ; i ++ ) {
228234 for ( j = 0 , pointList = [ ] ; j < geoParts [ i ] ; j ++ ) {
229- pointList . push ( new Point ( geoPoints [ j ] . x , geoPoints [ j ] . y ) ) ;
235+ const { x, y, z, m} = geoPoints [ j ] ;
236+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
230237 }
231238 lineEPS = LineString . createLineEPS ( pointList ) ;
232239 lineList . push ( new LineString ( lineEPS ) ) ;
@@ -267,7 +274,8 @@ export class ServerGeometry {
267274 var pointList = [ ] ;
268275 if ( len == 1 ) {
269276 for ( let i = 0 ; i < geoPoints . length ; i ++ ) {
270- pointList . push ( new Point ( geoPoints [ i ] . x , geoPoints [ i ] . y ) ) ;
277+ const { x, y, z, m} = geoPoints [ i ] ;
278+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
271279 }
272280 polygonArray . push ( new Polygon ( [ new LinearRing ( pointList ) ] ) ) ;
273281 return new MultiPolygon ( polygonArray ) ;
@@ -281,7 +289,8 @@ export class ServerGeometry {
281289 var CCWIdent = [ ] ;
282290 for ( let i = 0 , pointIndex = 0 ; i < len ; i ++ ) {
283291 for ( let j = 0 ; j < geoParts [ i ] ; j ++ ) {
284- pointList . push ( new Point ( geoPoints [ pointIndex + j ] . x , geoPoints [ pointIndex + j ] . y ) ) ;
292+ const { x, y, z, m} = geoPoints [ pointIndex + j ] ;
293+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
285294 }
286295 pointIndex += geoParts [ i ] ;
287296 var polygon = new Polygon ( [ new LinearRing ( pointList ) ] ) ;
@@ -374,7 +383,8 @@ export class ServerGeometry {
374383 var lineEPS ;
375384 if ( len == 1 ) {
376385 for ( var i = 0 ; i < geoPoints . length ; i ++ ) {
377- pointList . push ( new Point ( geoPoints [ i ] . x , geoPoints [ i ] . y ) ) ;
386+ const { x, y, z, m} = geoPoints [ i ] ;
387+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
378388 }
379389
380390 lineEPS = LineString . createLineEPS ( pointList ) ;
@@ -390,7 +400,8 @@ export class ServerGeometry {
390400 var CCWIdent = [ ] ;
391401 for ( let i = 0 , pointIndex = 0 ; i < len ; i ++ ) {
392402 for ( let j = 0 ; j < geoParts [ i ] ; j ++ ) {
393- pointList . push ( new Point ( geoPoints [ pointIndex + j ] . x , geoPoints [ pointIndex + j ] . y ) ) ;
403+ const { x, y, z, m} = geoPoints [ pointIndex + j ] ;
404+ pointList . push ( new Point ( [ x , y , z , m ] ) ) ;
394405 }
395406 pointIndex += geoParts [ i ] ;
396407
@@ -536,7 +547,8 @@ export class ServerGeometry {
536547 let partPointsCount = vertices . length ;
537548 parts . push ( partPointsCount ) ;
538549 for ( let j = 0 ; j < partPointsCount ; j ++ ) {
539- points . push ( new Point ( vertices [ j ] . x , vertices [ j ] . y ) ) ;
550+ const { x, y, z, m} = vertices [ j ] ;
551+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
540552 }
541553 }
542554 //这里className不是多点就全部是算线
@@ -552,11 +564,11 @@ export class ServerGeometry {
552564 const partPointsCount = vertices . length + 1 ;
553565 parts . push ( partPointsCount ) ;
554566 for ( let k = 0 ; k < partPointsCount - 1 ; k ++ ) {
555- points . push ( new Point ( vertices [ k ] . x , vertices [ k ] . y ) ) ;
567+ const { x, y, z, m} = vertices [ k ] ;
568+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
556569 }
557- points . push (
558- new Point ( vertices [ 0 ] . x , vertices [ 0 ] . y )
559- ) ;
570+ const { x, y, z, m} = vertices [ 0 ] ;
571+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
560572 }
561573 }
562574 type = GeometryType . REGION ;
@@ -567,19 +579,23 @@ export class ServerGeometry {
567579 let partPointsCount = vertices . length + 1 ;
568580 parts . push ( partPointsCount ) ;
569581 for ( let j = 0 ; j < partPointsCount - 1 ; j ++ ) {
570- points . push ( new Point ( vertices [ j ] . x , vertices [ j ] . y ) ) ;
582+ const { x, y, z, m} = vertices [ j ] ;
583+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
571584 }
572- points . push ( new Point ( vertices [ 0 ] . x , vertices [ 0 ] . y ) ) ;
585+ const { x, y, z, m} = vertices [ 0 ] ;
586+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
573587 }
574588 type = GeometryType . REGION ;
575589 } else {
576590 const vertices = geometry . getVertices ( ) ;
577591 let geometryVerticesCount = vertices . length ;
578592 for ( let j = 0 ; j < geometryVerticesCount ; j ++ ) {
579- points . push ( new Point ( vertices [ j ] . x , vertices [ j ] . y ) ) ;
593+ const { x, y, z, m} = vertices [ j ] ;
594+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
580595 }
581596 if ( geometry instanceof LinearRing ) {
582- points . push ( new Point ( vertices [ 0 ] . x , vertices [ 0 ] . y ) ) ;
597+ const { x, y, z, m} = vertices [ 0 ] ;
598+ points . push ( new Point ( [ x , y , z , m ] ) ) ;
583599 geometryVerticesCount ++ ;
584600 }
585601 parts . push ( geometryVerticesCount ) ;
0 commit comments