gpt4 book ai didi

javascript - OpenLayers 5.3,从 KML 图层地标获取 PROPERTIES

转载 作者:行者123 更新时间:2023-11-28 14:23:17 26 4
gpt4 key购买 nike

我有一张包含不同 KML 图层上的地震 map 信息。

如果您将鼠标“悬停”在特定地点上,会有一个工具提示显示该地点的信息

例如。

我将鼠标移到“PUNTA CANA”上,应该会出现一个工具提示:

  • 姓名:蓬塔卡纳
  • 震级:2.2
  • 纬度:xxx
  • 经度:yyy
  • 时间:年/月/日,时:ii

注意:在我的 KML 中,如您所见,我拥有所有这些信息:

<Folder>
<Placemark id="placemark54021">
<name> Punta Cana</name>
<lat>38.89</lat>
<longitudo>15.78</longitudo>
<magnitudo>2.1</magnitudo>
<profondita>109</profondita>
<data_intera>18/01/2019</data_intera>
<orario>09:10</orario>
<styleUrl>#simbolo_last_0_1</styleUrl>
<Point>
<coordinates>15.78,38.89</coordinates>
</Point>
</Placemark>
</Folder>

但是,如果我尝试获取属性,我只能读取“name”属性:

例如

map.on(select, function(event) {

var feature = map.forEachFeatureAtPixel(event.pixel,
function(feature, layer) {

var values = feature.values_;

var coordinate = event.coordinate;
var hdms = ol.coordinate.toStringHDMS(ol.proj.toLonLat(coordinate));


content.innerHTML = '<p style="font-weight: 800">'+ values.name +' - ' + '02/02/2002' + ' - ore 06:00</p>' +
'<p><span style="font-weight: bold; color: red;">Magnitudo: 2.2</span> - ' +
'<b>Lat:</b> 42.00 - <b>Long</b>: 32.00 - <b>Profondità</b>: 9km</p>';

overlay.setPosition(coordinate);


}, {
hitTolerance: 5
});
});

我使用values.name正确读取属性名称。但是,如果我尝试相同的方式读取其他属性。例如。:- 值(value)观.lat- 值.longitudETC...这不起作用!

如何从 KML 收集其他属性?我错过了什么吗?

谢谢!

最佳答案

不确定这是否相关(因为我不太了解 openlayers),但您的 KML 结构不是有效的 KML。您直接在 KML 中为数据变量使用自定义标记,但这是不受支持的。如果您想在 KML 要素中包含类似的属性数据,通常最好使用 <ExtendedData>部分(有或没有定义模式)。您的 KML 最终看起来像这样:

<kml>
<Folder>
<Placemark id="placemark54021">
<name>Punta Cana</name>
<styleUrl>#simbolo_last_0_1</styleUrl>
<ExtendedData>
<Data name="lat"><value>38.89</value></Data>
<Data name="longitudo"><value>15.78</value></Data>
<Data name="magnitudo"><value>2.1</value></Data>
<Data name="profondita"><value>109</value></Data>
<Data name="data_intera"><value>18/01/2019</value></Data>
<Data name="orario"><value>09:10</value></Data>
</ExtendedData>
<Point>
<coordinates>15.78,38.89</coordinates>
</Point>
</Placemark>
</Folder>
</kml>

关于javascript - OpenLayers 5.3,从 KML 图层地标获取 PROPERTIES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54520200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com