首页 / 浏览问题 / 云GIS / 问题详情
矢量图层点击事件
32EXP 2017年09月22日
使用矢量图层点击事件的js代码中其中有一步是:

var  selectFeature = new SuperMap.Control.SelectFeature(tempLayer,
                        {
                              callbacks:callbacks
                        });

var callbacks={
        click: function(currentFeature){
        closeInfoWin();
        var popup = new SuperMap.Popup.FramedCloud("popwin",
                new SuperMap.LonLat(currentFeature.attributes.SMSDRIW, currentFeature.attributes.SMSDRIS),
                null,
                currentFeature.attributes.NAME,
                null,
                true);
        infowin = popup;
        map.addPopup(popup);
    }
};

我有一个程序是用一个矢量图层加载多个Feature,这个Feature是线对象,当点击其中一个Feature时触发callbacks变量,我想知道怎么用currentFeature获得这条点击的线的起始点坐标?

1个回答

您好,在对应线对象的feature.geometry.components[],其中数组的第一个components[0]的x和y属性即为线的启示点。当然也可用console来查看您的起始点的坐标:

1,695EXP 2017年09月22日
请教一下其他相关问题

1.当鼠标悬浮feature后改变feature的宽度,怎么做?

2.当点击后改变feature的颜色后不会立即改变,拖动地图或者缩放地图后才会改变颜色,这是为什么?

3.当点击feature1(原来绿色)后改变feature1的颜色(变为黄色),再点击feature2(原来红色)后改变feature2的颜色(变为黄色),怎么将feature1的颜色还原回来(变回绿色)?
1.可以通过调整feature.style来实现

2.这个可能是您的事件添加的地方不对,应该在vectorlayer上添加click事件

3.这个可以用最基本的if判断来实现,判断时候为黄色(是黄色时变绿,是绿色时变黄诸如此类)
抱歉,你没明白我第三个问题的意思,我是说一个vectorLayer图层上有线对象,也有面对象,而且线对象的颜色有三种,面对象的颜色也有三种,这六种颜色都不同,现在点击feature,将feature的颜色变为第七种颜色,点击下一个feature时,上一个的feature怎么变回原来的颜色?
...