我创建了一个这样的模块:
module GeoJSON {
export interface position {
(): number[];
}
export interface coordinateArray {
() : position[];
}
export interface polygonRings {
(): position[][];
}
export class GeometryType {
public static Point: string = "Point";
public static LineString: string = "LineString";
public static Polygon: string = "Polygon";
public static MultiPoint: string = "MultiPoint";
public static MultiLineString: string = "MultiLineString";
public static MultiPolygon: string = "MultiPolygon";
public static MultiGeometry: string = "MultiGeometry";
}
export interface Geometry {
type?: string;
}
export interface Point extends Geometry {
coordinates: position;
}
export interface LineString extends Geometry {
coordinates: coordinateArray;
}
export interface Polygon extends Geometry {
coordinates: polygonRings;
}
export interface MultiPolygon extends Geometry {
coordinates: polygonRings[];
}
export interface MultiPoint extends Geometry {
coordinates: coordinateArray;
}
export interface MultiLineString extends Geometry {
coordinates: polygonRings;
}
export interface GeometryCollection extends Geometry {
geometries: Geometry[];
}
}
当我使用它时,我得到一个愚蠢的错误。这push
是一个没有解决的方法...
var lineString: GeoJSON.LineString = <GeoJSON.LineString> this._myGeometry;
lineString.coordinates.push(position);
我试图将坐标投射到GeoJSON.position[]
. 代码编译,但JavaScript
抛出错误:(
(<GeoJSON.position[]> lineString.coordinates).push(position);
如何push
在这里显示?我无法更改coordinates
from coordinateArray
to的类型position[]
,因为稍后JSON.stringify
将返回不同的 JSON 数据并且服务器不会响应。