OpenLayers 3中的功能ID未定义

Mor*_*tch 5 openlayers-3

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

feature.getId();
Run Code Online (Sandbox Code Playgroud)

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

干杯

Alv*_*tam 7

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

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

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

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

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

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

根据每个Format的功能标识符规范序列化功能时,会包含ID.