OpenLayers 3中的功能ID未定义

时间:2015-12-31 13:52:57

标签: openlayers-3

在OL2中,功能ID是在内部生成的。在OL3中,似乎并非如此,因为id是未定义的。我尝试过使用WKT,JSON和KML源代码,但没有一个ID分配给功能。是否已从OL3中删除内部功能ID?如果不是我需要做什么来获得id的生成。我通过以下方式请求id:

feature.getId();

这是拖放的真正问题,因为我无法控制文件。

干杯

1 个答案:

答案 0 :(得分:7)

不,OL3不会生成任何功能ID。

当读取特征时,如果根据格式的语义定义了特征ID,则每个格式都可以设置特征ID。对于GeoJSON来说,它是" id"功能的成员(不是属性)。

创建新功能时,应用程序有责任在必要时设置功能ID。使用该功能的setId方法。如果使用Draw交互,它的drawend事件可能会有用。

您还应该注意OL3中有关功能ID的这些事实:

没有重复ID的功能可能位于同一来源中。如果将某个要素添加到存在具有相同ID的要素的源,则会忽略该新要素。

功能ID会被比较为字符串,因此1234"1234"被视为相等。

根据每种格式的功能标识符规范序列化功能时,会包含ID。