JavaScript 三点圆弧
JS SDK 0.1.0-alpha.44 新增 Arc。该版本已发布;alpha.43 没有此接口。
先使用 load() 取得 sdk 和地图。Arc 在客户端根据三个坐标计算圆弧,复用SDK覆盖物渲染,不请求新服务端接口,也不修改底图数据。
const arc = new sdk.Arc({
map,
path: [[100.02128, 21.67623], [100.02228, 21.67723], [100.02328, 21.67623]],
strokeColor: '#1268e5',
strokeWeight: 5,
strokeOpacity: 0.9,
visible: true
});
arc.setArc(
[100.02128, 21.67623],
[100.02228, 21.67723],
[100.02328, 21.67623]
);
arc.setStrokeColor('#ff8800');
arc.setStrokeWidth(8);
arc.setVisible(false);
arc.show();
arc.remove();
path 必须恰好包含起点、经过点、终点,坐标顺序为经度、纬度,坐标系与当前地图一致。圆弧选择经过第二点的方向,可生成超过180度的长弧。重复点、共线或极接近共线的点、极区构造和无效经纬度返回 INVALID_ARGUMENT,失败更新保留原圆弧。
getArc() 返回三个控制点的副本;getPath() 返回绘制用的采样点。setPath() 与 setArc() 一样只接受三个控制点;setOptions() 可同时更新坐标和样式。getOptions() 返回控制点及当前样式。颜色使用CSS颜色字符串,线宽为正数,透明度在0至1之间。
提供与Android对应的 getId()、setStrokeColor() / getStrokeColor()、setStrokeWidth() / getStrokeWidth()、setVisible() / isVisible()。也支持普通覆盖物的 setMap()、show()、hide()、remove()、destroy()、getBounds()、getLength() 及 click 事件。移除或地图销毁后会释放图层和数据源。
圆弧采用与Android一致的局部平面圆构造,不是测绘级球面圆。跨日期变更线的线段连续绘制,但通用覆盖物范围适配采用经纬度包围盒,不应将跨日期变更线的包围盒当作最短跨界视野。
客户通用案例的“三点弧线”使用合成坐标,不代表真实道路或地图采集结果。运行后使用“清理”移除,释放页面时随地图销毁。