添加标注与矢量要素
添加标注Marker
Marker用于标注地图上的点,是最常用的地图覆盖物。最简单的使用方法就是直接创建一个Marker,然后作为图层添加到地图上。
markerlayer = new SuperMap.Layer.Markers("markerLayer");
map.addLayers([layer,markerlayer]);
添加矢量要素
矢量要素是地图上的矢量的要素,并不完全等同于几何对象。矢量要素既有Geometry属性存放几何信息,attributes属性存放非几何的属性信息,又包含了style属性,用来定义样式。
矢量要素可以通过Vector来创建,然后通过map.addLayers([layer,vector])添加到地图上。
vector = new SuperMap.Layer.Vector("vector");
addData();
而矢量要素本身,则需要根据不同的几何类型来构建。本例将构建点、线、矩形、多边形要素并添加到矢量图层。
下面的代码展示了点、线、六边形、矩形要素的构建方式。
//点对象
var point= new SuperMap.Geometry.Point(0,0);
var pointVector = new SuperMap.Feature.Vector(point);
pointVector.style={
fillColor:"red",
strokeColor:"yellow",
pointRadius:6
};
//线对象
var points2=[
new SuperMap.Geometry.Point(0,29.4),
new SuperMap.Geometry.Point(-50,39.4),
new SuperMap.Geometry.Point(-30,19.4),
new SuperMap.Geometry.Point(100,49.4)
];
var line1 = new SuperMap.Geometry.LineString(points2);
var lineVector = new SuperMap.Feature.Vector(line1);
lineVector.style={
strokeColor:"#7B68EE",
strokeWidth:2
} ;
//六边形
var points2=[
new SuperMap.Geometry.Point(-120,54.142),
new SuperMap.Geometry.Point(-110,40),
new SuperMap.Geometry.Point(-120,25.857),
new SuperMap.Geometry.Point(-140,25.857),
new SuperMap.Geometry.Point(-150,40),
new SuperMap.Geometry.Point(-140,54.142)
],
linearRings = new SuperMap.Geometry.LinearRing(points2),
region = new SuperMap.Geometry.Polygon([linearRings]);
var polygonVector = new SuperMap.Feature.Vector(region);
// 矩形
var x = -70;
var y = -30;
var w = 40;
var h = 30;
var rectangle = new SuperMap.Geometry.Rectangle(x, y, w, h);
var rectangleVector = new SuperMap.Feature.Vector(rectangle);
矢量要素构建完成后,通过vector.addFeatures()就可以把要素添加到矢量图层中,从而叠加到地图上。
//添加要素
vector.addFeatures([pointVector,lineVector, polygonVector,rectangleVector]);
在线演示与源码编辑
您可以在线访问完整代码、体验演示效果,也可以直接在线编辑源码并实时查看效果。