首页 / 浏览问题 / 组件GIS / 问题详情
marker点连成线问题
1EXP 2018年04月03日

请问这四个点如何连成线,坐标是动态获取的,请详细说明代码,感激不尽

2 个回答

您好,您的图片没有上传成功,但是线都是可以通过点集合来构造的,以构造二维线为例:您要做的是通过动态获取的点坐标构造点(Point2D),然后把点对象添加至点集合(Point2Ds),最后用点集合构造线即可(GeoLine)。
5,985EXP 2018年04月03日
谢谢您的回复,用lineString这种方式可以么,api文档里用这种方式画线串,但是为什么我用了,线却显示不出来
$(function() {
    // 声明变量map、layer、url
    var map, layer, LayerNames = {},
    url = "http://114.251.53.254:8090/iserver/services/map-TZ_MapWorkSpace/rest/maps/TZMap";
    // 创建地图控件
    map = new SuperMap.Map("xmap", {
        controls : [ new SuperMap.Control.ScaleLine(),
                new SuperMap.Control.OverviewMap(),
                new SuperMap.Control.Zoom(),
                new SuperMap.Control.Navigation({
                    dragPanOptions : {
                        enableKinetic : true
                    }
                }) ],
        allOverlays : false
    });
    // map.addControl(new SuperMap.Control.ZoomBox());
    LayerName = "通州矢量地图";

    // 增加轨迹图
    var vectorLayer = new SuperMap.Layer.Vector();
    var start = new SuperMap.Geometry.Point(116.708, 39.840);
    var senter = new SuperMap.Geometry.Point(116.708, 39.740);
    var end = new SuperMap.Geometry.Point(116.808, 39.840);
    var line = new SuperMap.Geometry.LineString([ start, senter, end ]);
    var lineVector = new SuperMap.Feature.Vector(line);
    vectorLayer.addFeatures(lineVector);

    // 标记图层上添加标记
    var size = new SuperMap.Size(21, 25);
    var offset = new SuperMap.Pixel(-(size.w / 2), -size.h);
    var icon = new SuperMap.Icon('../theme/images/marker.png', size, offset);

    var markers = new SuperMap.Layer.Markers("Markers");
    markers.addMarker(new SuperMap.Marker(new SuperMap.LonLat(116.708, 39.840),
            icon));

    // 创建分块动态REST图层,该图层显示iserver 7C 服务发布的地图,
    // 其中“world”为图层名称,url图层的服务地址,{transparent: true}设置到url的可选参数
    layer = new SuperMap.Layer.TiledDynamicRESTLayer(LayerName, url, null, {
        maxResolution : "auto"
    });
    layer.events.on({
        "layerInitialized" : addLayer
    });

    function addLayer() {
        // 将Layer图层加载到Map对象上
        map.addLayer(layer);
        map.addLayer(markers);
        map.addLayer(vectorLayer);
        // 出图,map.setCenter函数显示地图
        map.setCenter(new SuperMap.LonLat(116.708, 39.840), 11, false, false);
    }
});
5EXP 2018年04月03日
请问你的代码,所画的线要怎样绑定一个点击事件,代码后半部分添加的marker是添加了另一个图层吗
...