如何在openlayers 4.6.5中使用map.on('click'...)从GeoJson-Multipoint要素中获取单个要素

时间:2019-05-03 10:41:00

标签: javascript openlayers geojson

当我在openlayers地图(4.6.5)中单击一个点时,我试图获取每个MultiPoint点的功能。这些点会显示在地图上。

当我单击MultiPoint数组中的点时,我想在每个功能上添加一个弹出窗口。每个点都由[LON,LAT,TIME]组成。

In以前通过“ LineString”几何图形实现了此目的。所以我想知道“ MULTIPOINT”作为几何图形是否存在问题?

我的点击功能如下:

map.on('click', function (evt) {
        var pointfeature = map.forEachFeatureAtPixel(evt.pixel, function (feature, vectorLayer) {

            if (feature) {
console.log(feature)
               var coordinate = evt.coordinate;
                var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(coordinate, 'EPSG:3857', 'EPSG:4326'));

            var geometry = feature.getGeometry(); 
            var mypoint = geometry.getClosestPoint(coordinate);
            var pointtoshow = point[1];
            content.innerHTML = '<p>feature </p>';
            overlay.setPosition(coordinate);
            }
            return feature;
        });
    });

我的geojsonObject看起来像这样:

var geojsonObject = {
        'type': 'FeatureCollection',
        'crs': {
            'type': 'name',
            'properties': {
                'name': 'EPSG:3857'
            }
        },
        'features':[
'type': 'Feature',
                'geometry': {
                    'type': 'MultiPoint',
                    'coordinates': 
                        mycoordinates().map(function (x) {

                            return ol.proj.transform([x[0], x[1]], 
   'EPSG:4326', 'EPSG:3857')
                        })
                    ,
                    "properties": {
                        "Time": mycoordinates().map(function (x)         
                    {
                            return x[2]
                    })
                }
            },{
        'type': 'Feature',
        'geometry': {
            'type': 'Point', 
            'coordinates': ol.proj.transform([refpointlon, refpointlat], 'EPSG:4326', 'EPSG:3857') 
        }]
};

我从console.log(功能)获得的内容如下:

Hk {Wa: {…}, qa: {…}, oa: {…}, g: 1, xp: 2, …}
N: {geometry: No}
Wa: {}
a: "geometry"
ab: {change:geometry: Array(1), change: Array(1), propertychange:         
Array(1)}
c: undefined
f: null
g: 1
i:
Ch: Hk {Wa: {…}, qa: {…}, oa: {…}, g: 1, xp: 2, …}
Dh: ƒ b(b)
Eh: false
listener: ƒ ()
target: No {Wa: {…}, qa: {…}, oa: {…}, g: 1, xp: 1, …}
type: "change"
__proto__: Object
j: undefined
oa: {change:geometry: Array(1), change: Array(1), propertychange:         
Array(1)}
qa: {}
xp: 2
__proto__: Vc

但这不包含要素坐标,也不包含在geojson对象中特化的要素属性:TIME。

关于为什么我没有个人功能信息的任何建议?

0 个答案:

没有答案