javascript - 如何在 openlayers 4.6.5 中使用 map.on('click'...) 从 GeoJson-Multipoint 特征中获取单个特征
问题描述
当我单击我的 openlayers 地图(4.6.5)中的一个点时,我试图获取每个多点点的特征。点显示在地图上。
当我单击 MultiPoint 数组中的点时,我想在每个功能上添加一个弹出窗口。每个单独的点由 [LON, LAT, TIME] 组成。
以前用“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(feature) 得到的内容如下:
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 中所指定。
关于为什么我没有获得个人功能信息的任何建议?
解决方案
推荐阅读
- reactjs - 如何满足Record的约束
带接口 - sql-server - 查询的默认 dbo
- javascript - 将代理设置为空字符串与未定义之间有区别吗?
- botframework - 运行 Bot Dispatcher for Production 聊天机器人的推荐方法是什么?
- ada - 位域的 Ada 模式
- next.js - 下一个 i18next 生产重定向错误
- apache-kafka - 如果我使用persistentKeyValueStore,Kafka Streams 会停止,但可以与 inMemoryKeyValueStore 一起正常工作(在 Docker 容器中运行)
- c# - IdentityServer4 API 未经授权调用自省端点
- javascript - 使用 javascript 和 vuejs 创建树
- android - Room - “预打包的数据库具有无效架构” - 随机要求列为 notNull