1.0.5 • Published 5 months ago

@sword0916/wings-map v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

wings-canvas

一、项目安装和引用

1、安装

npm i @sword0916/wings-map

2、引用

import S from "@sword0916/wings-map"

二、创建map

1、初始化一个地图

let map = new S.Map({
    containerId: "app"
});

2、参数列表

序号参数名类型默认值说明
1containerIdstringwingsMapdom的ID
2widthnumber600地图的宽,单位是px
3heightnumber400地图的高,单位是px
4minXnumber-300地图最小横坐标
5minYnumber-200地图最小纵坐标
6maxXnumber300地图最大横坐标
7maxYnumber200地图最大纵坐标
8scalebooleantrue是否启用缩放
9rulerbooleantrue是否启用测距
10brushbooleantrue是否启用画笔(可绘制:点、线、圆、正方形和多边形)
11wholebooleantrue是否启用全局(回到初始视角)
12panbooleantrue是否启用平移
13keyboardbooleantrue是否启用键盘操作(缩放(+、-)、平移(↑、↓、←、→)、全局(Backspace))
14markbooleantrue是否启用标点
15positionbooleanfalse是否启用位置坐标(显示鼠标坐标)
16layerBtnbooleanfalse是否显示图层按钮
17scaleBtnbooleanfalse是否显示缩放按钮
18rulerBtnbooleanfalse是否显示测距按钮
19brushBtnbooleanfalse是否显示画笔按钮
20wholeBtnbooleanfalse是否显示全局按钮

三、添加图层

1、创建图层层

图层创建完成后,需要添加到地图(map)中才会渲染。创建图层的参数是该图层的名称。地图中可以添加多个图层,名称不能重复。

//创建一个名称是“layer01”的图层
let layer = new S.Layer('layer01');
//将图层layer添加到map中。
//map是初始化的地图对象。参照:二-1
map.addLayer(layer);

注意事项

图层的名称不可重复!

图层添加到地图(map)才会渲染!

四、添加标点

1、创建标点

//创建一个标点对象
let marker = new S.Marker({
    point: new S.Point(0, 0),
    title: '标点', 
    content: '就一个点'
});
//将标点添加到map中。
//map是初始化的地图对象。参照:二-1
map.addMarker(marker);

2、标点的参数

序号参数名类型默认值说明
1titlestring标点标点的名称
2imageurl或image标点的图标
3movebooleanfalse是否移动
4contentstring或dom弹框的内容
5widthnumber30图标的宽,单位是px
6heightnumber30图标的高,单位是px
7offsetXnumber标点的宽的相反数的一半(-width/2)图标横向偏移,单位是px
8offsetYnumber标点的高的相反数(-height)图标纵向偏移,单位是px
9tooltipOffsetXnumber弹框横向偏移,单位是px
10tooltipOffsetYnumber弹框纵向偏移,单位是px

五、创建、添加向量

向量(Vector)需要添加到图层(Layer)中,才会渲染!

向量(Vector)由几何体(Geometry)和样式(普通对象)构成。

1、样式

样式是普通对象,如 {fill: false, stroke: true, fillOpacity: 0, strokeOpacity: 1, strokeColor: "red", strokeWidth: 1};

样式对象属性说明

序号属性名类型默认值说明
1fillbooleantrue是否填充
2strokebooleantrue是否描边
3fillOpacitynumber0.8填充的透明度(取值范围0-1)
4strokeOpacitynumber1描边的透明度(取值范围0-1)
5fillColorstringred填充的颜色
6strokeColorstringblack描边的颜色
7lineDasharray虚线的样式
8strokeWidthnumber描边的线宽

示例

let s = {fill: true, stroke: true, fillOpacity: 1, strokeOpacity: 1, fillColor: 'black', strokeColor: 'red', strokeWidth: 1};
// v是创建出的向量;参照:五-3
let v = new S.Vector(geometry, s);

2、创建几何体

1、创建点

let p = new S.Point(x, y, bulge);

参数说明

序号参数名类型说明参照
1xnumber横轴坐标
2ynumber纵轴坐标
3bulgenumber凸度,在折线和多边形中可绘制出弧线。可不传

2、创建折线

let l = new S.Line(points);

参数说明

序号参数名类型说明参照
1pointsarray点对象数组五-2-1

3、创建圆

let c = new S.Circle(center, radius);

参数说明

序号参数名类型说明参照
1centerPoint点对象五-2-1
2radiusnumber圆的半径

4、创建圆弧

let a = new S.Arc(center, radius, startAngle, endAngle, anticlockwise);

参数说明

序号参数名类型说明参照
1centerPoint点对象五-2-1
2radiusnumber圆的半径
3startAnglenumber圆心和起始点连线和横轴的夹角角度(不是弧度。顺时针是负,逆时针是正)
4endAnglenumber圆心和终止点连线和横轴的夹角角度(不是弧度。顺时针是负,逆时针是正)
5endAngleboolean从起始角度到终止角度是否是逆时针旋转(true是逆时针,false是顺时针)

5、创建多边形

let p = new S.LineLoop(points);

参数说明

序号参数名类型说明参照
1pointsarray点对象数组五-2-1

6、创建椭圆

let e = new S.Ellipse(center, radiusX, radiusY, rotation);

参数说明

序号参数名类型说明参照
1centerPoint点对象五-2-1
2radiusXnumber椭圆横轴半径
3radiusYnumber椭圆纵轴半径
4rotationnumber顺时针旋转角度(不是弧度。顺时针为正,逆时针为负。)

3、生成向量

1、创建向量

let v = new S.Vector(geometry, style);

参数说明

序号参数名类型说明参照
1geometryGeometry几何体对象五-2
2styleobject样式对象五-1

2、添加向量

//layer是地图中的一个图层。参照:三-1
layer.addVectors(vectors);

参数说明

序号参数名类型说明参照
1vectorsVector或array要添加的向量五-3-1

六、控制工具

1、获取控制对象

获取的控制器包含了:平移工具、缩放工具、测距工具、画笔工具和全局工具。

//map是初始化的地图。参照:二-1
let control = map.getControl();

2、平移工具

//map是初始化的地图。参照:二-1
let control = map.getControl();
let pan = control.pan;
pan.panUp();//向上平移
pan.panDown();//向下平移
pan.panLeft();//向左平移
pan.panRight();//向右平移

pan.panUp(20);//向上平移
pan.panDown(20);//向下平移
pan.panLeft(20);//向左平移
pan.panRight(20);//向右平移

初始化地图时启用键盘操作,可使用键盘上的“↑、↓、←、→”控制平移。

3、缩放工具

//map是初始化的地图。参照:二-1
let control = map.getControl();
let scale = control.scale;
scale.scaleUp();//放大
scale.panDown();//缩小

scale.scaleUp(2);//放大
scale.panDown(2);//缩小

初始化地图时启用键盘操作,可使用键盘上的“+、-”控制缩放。

4、测距工具

//map是初始化的地图。参照:二-1
let control = map.getControl();
let ruler = control.ruler;
ruler.rule();//开始测距

5、画笔工具

//map是初始化的地图。参照:二-1
let control = map.getControl();
let brush = control.brush;
//开始绘制
//brushType画笔类型:"Point", "Line", "Circle", "Square", "Polygon"
//brushStyle画笔样式。参照:五-1
//返回Promise对象
brush.paint(brushType, brushStyle).then( v => {
    //绘制成功操作
    //v是绘制的向量
}).catch(e => {
    //绘制失败操作
    //e是错误提示
});

6、全局工具

//map是初始化的地图。参照:二-1
let control = map.getControl();
let whole = control.whole;
whole.viewWhole();//全局

初始化地图时启用键盘操作,可使用键盘上的“Backspace”控制全局。

1.0.5

5 months ago

1.0.4

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago