几何对象线串类。
SuperMap. |
几何对象线串类。 |
Constructor | |
SuperMap. |
创建新的线串几何对象。 |
Functions | |
createBezier2 | 创建2次贝塞尔曲线。 |
createBezier3 | 创建3次贝塞尔曲线。 |
createBezierN | 创建N次贝塞尔曲线。 创建N次贝塞尔曲线需要N+1个点 也就是传入 points ,得到的是points.length-1次贝塞尔曲线 |
createBspline | 创建B样条曲线。 此曲线会穿过所有的点。 |
createCurve | 创建扇形对象。 |
distanceTo | 计算两个几个图形间的最小距离(x-y平面坐标系下)。 |
getVertices | 返回几何图形的所有顶点的列表。 |
intersects | 判断两个几何图形是否相交。 |
removeComponent | 只有在线串上有三个或更多的点的时候,才会允许移除点(否则结果将会是单一的点)。 |
simplify |
创建新的线串几何对象。
points | {Array(SuperMap.Geometry.Point)} 用来生成线串的点数组。 |
var points = [new SuperMap.Geometry.Point(4933.319287022352, -3337.3849141502124), new SuperMap.Geometry.Point(4960.9674060199022, -3349.3316322355736), new SuperMap.Geometry.Point(5006.0235999418364, -3358.8890067038628), new SuperMap.Geometry.Point(5075.3145648369318, -3378.0037556404409), new SuperMap.Geometry.Point(5305.19551436013, -3376.9669111768926)], roadLine = new SuperMap.Geometry.LineString(points);
removeComponent: function( point )
只有在线串上有三个或更多的点的时候,才会允许移除点(否则结果将会是单一的点)。
point | {SuperMap.Geometry.Point} 将被删除的点。 |
{Boolean} 删除的点。
intersects: function( geometry )
判断两个几何图形是否相交。
geometry | {SuperMap.Geometry} 任意的几何类型。 |
{Boolean} 输入几何图形与当前几何图形是否相交。
distanceTo: function( geometry, options )
计算两个几个图形间的最小距离(x-y平面坐标系下)。
geometry | {SuperMap.Geometry} 目标几何图形。 |
options | {Object}距离计算需要设置的可选属性。有效的选项取决于特定的几何类型。 |
details | {Boolean} 返回距离计算的细节,默认为false。 |
edge | {Boolean} 计算一个几何图形到目标几何图形边缘的最近距离,默认为true。 如果设为true, 一个几何图形完全包含在目标几何图形中时,调用distanceTo返回非零结果,如果false,两个几何图形相交情况下 调用distanceTo结果返回0,而且如果false,将不返距离。 |
{Number | Object} 返回一个几何图形到目标几何图形的距离。
SuperMap.Geometry.LineString.createCurve = function( points, method, filterSize, lineLength )
创建扇形对象。
points | {Array(SuperMap.Geometry.Point)} 曲线经过的点串。 |
method | {String} 曲线类型,目前支持的有:”lanczos”,”cubic”,”linear”,默认为”lanczos”。 |
filterSize | {Number} 曲线平滑曲度,在2~10之间的数值,默认为10,不支持method为”linear”的类型。 |
lineNum | {Number} 曲线拟合的线数目,默认是80。 备注:需要依赖Smooth.js Returns: {SuperMap.Geometry.LineString} 几何线对象 |
var points = []; points.push(new SuperMap.Geometry.Point(11983722.7315,3942864.5449)); points.push(new SuperMap.Geometry.Point(11986722.7315, 3946864.5449)); points.push(new SuperMap.Geometry.Point(11989722.7315, 3949864.5449)); var curve = SuperMap.Geometry.LineString.createCurve(points);
SuperMap.Geometry.LineString.createBspline= function( points, filterSize )
创建B样条曲线。 此曲线会穿过所有的点。
points | {Array(SuperMap.Geometry.Point)} 曲线经过的点串。 |
filterSize | {Number} 曲线平滑曲度,默认为10。 Returns: {SuperMap.Geometry.LineString} 几何线对象 |
var points = []; points.push(new SuperMap.Geometry.Point(116, 39.4)); points.push(new SuperMap.Geometry.Point(118, 39.8)); points.push(new SuperMap.Geometry.Point(119, 39)); var curve = SuperMap.Geometry.LineString.createBspline(points,5);
SuperMap.Geometry.LineString.createBezier2 = function ( points, part )
创建2次贝塞尔曲线。
points -{Array(SuperMap.Geometry.Point)} 传入的待计算的初始点串(必须为三个点)。 part -{Number} 平滑度。取值越大,曲线越平滑。取值为大于1的整数。 Returns: {SuperMap.Geometry.LineString} 几何线对象
var points = []; points.push(new SuperMap.Geometry.Point(-50,30)); points.push(new SuperMap.Geometry.Point(-30,50)); points.push(new SuperMap.Geometry.Point(2,60)); var bezier = SuperMap.Geometry.LineString.createBezier2(points, 20);
SuperMap.Geometry.LineString.createBezier3 = function ( points, part )
创建3次贝塞尔曲线。
points -{Array(SuperMap.Geometry.Point)} 传入的待计算的初始点串。(必须为四个点) precision -{Number} 拆分精度,表示贝塞尔曲线上任意两点间横向或纵向的最大距离。 决 Returns: {SuperMap.Geometry.LineString} 几何线对象
var points = []; points.push(new SuperMap.Geometry.Point(-50,30)); points.push(new SuperMap.Geometry.Point(-30,50)); points.push(new SuperMap.Geometry.Point(2,60)); points.push(new SuperMap.Geometry.Point(8,20)); var bezier = SuperMap.Geometry.LineString.createBezier3(points, 20);
SuperMap.Geometry.LineString.createBezierN = function ( points, part )
创建N次贝塞尔曲线。 创建N次贝塞尔曲线需要N+1个点 也就是传入 points ,得到的是points.length-1次贝塞尔曲线
points -{Array(SuperMap.Geometry.Point)} 传入的待计算的初始点串。 part -{Number} 平滑度。取值越大,曲线越平滑。取值为大于1的整数,默认为20。 Returns: {SuperMap.Geometry.LineString} 几何线对象
//创建3次贝塞尔曲线 var points = []; points.push(new SuperMap.Geometry.Point(-50,30)); points.push(new SuperMap.Geometry.Point(-30,50)); points.push(new SuperMap.Geometry.Point(2,60)); points.push(new SuperMap.Geometry.Point(8,20)); var bezier = SuperMap.Geometry.LineString.createBezierN(points, 20); //创建4次贝塞尔曲线 var points = []; points.push(new SuperMap.Geometry.Point(-50,30)); points.push(new SuperMap.Geometry.Point(-30,50)); points.push(new SuperMap.Geometry.Point(2,60)); points.push(new SuperMap.Geometry.Point(8,20)); points.push(new SuperMap.Geometry.Point(50,20)); var bezier = SuperMap.Geometry.LineString.createBezierN(points, 30); ......
只有在线串上有三个或更多的点的时候,才会允许移除点(否则结果将会是单一的点)。
removeComponent: function( point )
判断两个几何图形是否相交。
intersects: function( geometry )
返回几何图形的所有顶点的列表。
getVertices: function( nodes )
计算两个几个图形间的最小距离(x-y平面坐标系下)。
distanceTo: function( geometry, options )
simplify: function( tolerance )
创建扇形对象。
SuperMap.Geometry.LineString.createCurve = function( points, method, filterSize, lineLength )
创建B样条曲线。 此曲线会穿过所有的点。
SuperMap.Geometry.LineString.createBspline= function( points, filterSize )
创建2次贝塞尔曲线。
SuperMap.Geometry.LineString.createBezier2 = function ( points, part )
创建3次贝塞尔曲线。
SuperMap.Geometry.LineString.createBezier3 = function ( points, part )
创建N次贝塞尔曲线。 创建N次贝塞尔曲线需要N+1个点 也就是传入 points ,得到的是points.length-1次贝塞尔曲线
SuperMap.Geometry.LineString.createBezierN = function ( points, part )