JS OpenLayers单击可获得ol /功能值

时间:2018-09-19 14:21:30

标签: javascript openlayers

我正在使用OpenLayers,我想从Marker(ol.Feature)获取所有值。 您可以在docs中看到可以向ol.Feature添加任何值。

import Feature from 'ol/Feature';
import Polygon from 'ol/geom/Polygon';
import Point from 'ol/geom/Point';

var feature = new Feature({
  geometry: new Polygon(polyCoords),
  labelPoint: new Point(labelCoords),
  name: 'My Polygon' // <--- CUSTOM VALUE
});

// get the polygon geometry
var poly = feature.getGeometry();

// Render the feature as a point using the coordinates from labelPoint
feature.setGeometryName('labelPoint');

// get the point geometry
var point = feature.getGeometry();

我在地图上有一个click事件,我想获取这些值。

this.map.on('click', (args) => {

        this.map.forEachFeatureAtPixel(args.pixel, (feature, layer) => {
            // do something
            console.log(feature.values_); // <---- SEEMS LIKE 'PRIVATE' prop
        });
    });

看来ol.Feature没有获取这些值的方法。除了feature.values_之外,还有没有其他更“更”好的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用

获取所有属性。
feature.getProperties()

或者,如果您只需要一个,就可以

feature.get('name')