当我在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。
关于为什么我没有个人功能信息的任何建议?