OpenLayers 2 - 如何获取所选特征的坐标(点)

时间:2014-09-08 11:53:44

标签: javascript extjs html-lists openlayers gis

我想在我的图层上获取所选点的坐标。

我找到了这样的解决方案:

myLayer.features[0].geometry.getVertices()[0] 

但这不是我所需要的,因为它仅适用于一个具体点。

我想通过单击鼠标选择该点,然后获取有关此信息。

对我的问题有什么解决方案吗?

3 个答案:

答案 0 :(得分:1)

这可能会对您有所帮助:

new OpenLayers.Control.SelectFeature(layer,{
    hover:true,
    eventListeners:{
        onSelect:function(e){
            alert(e.feature.geometry.getVertices()[0].x);
            alert(e.feature.geometry.getVertices()[0].y);
        }
    }    
});

答案 1 :(得分:0)

好的,我找到了解决方案:  (我正在使用GeoExt)。我刚刚添加到我的代码中:

 new OpenLayers.Layer.Vector("warstwa", {
     styleMap: new OpenLayers.StyleMap({
         'default': styl
     }),
     protocol: new OpenLayers.Protocol.HTTP({
         url: '',
         format: new OpenLayers.Format.GeoJSON()
     }),
     strategies: [new OpenLayers.Strategy.Fixed()],      
         eventListeners: {
             featureselected: function(e) {
             var xValue = Ext.getCmp('xValue');
             var yValue = Ext.getCmp('yValue');
             xValue.setValue(e.feature.geometry.getVertices()[0].x);
             yValue.setValue(e.feature.geometry.getVertices()[0].y);
        }
    });

......它适用于我:)

答案 2 :(得分:0)

您可以在http://acanimal.github.io/Openlayers-Cookbook/(来源https://github.com/acanimal/Openlayers-Cookbook)找到OpenLayers Cookbook的样本,其中包含要素选择的样本。

干杯。