添加标注与矢量要素


添加标注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]);

在线演示与源码编辑

您可以在线访问完整代码、体验演示效果,也可以直接在线编辑源码并实时查看效果。