Как получить отдельные объекты из объекта GeoJson-Multipoint, используя map.on ('click' ...) в openlayers 4.6.5 - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь получить характеристики каждой точки MultiPoint, когда нажимаю на точку на моей карте открытых слоев (4.6.5).Точки отображаются на карте.

Я хочу добавить всплывающее окно для каждой функции, когда нажимаю на точки в массиве 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

Но это не содержит координаты объекта и не свойство свойства: TIME, как указано в geojsonobject.

Любые предложения, почему я не получаю информацию об отдельных функциях ??

...