在OL2中,功能ID是在内部生成的。在OL3中,似乎并非如此,因为id是未定义的。我尝试过使用WKT,JSON和KML源代码,但没有一个ID分配给功能。是否已从OL3中删除内部功能ID?如果不是我需要做什么来获得id的生成。我通过以下方式请求id:
feature.getId();
这是拖放的真正问题,因为我无法控制文件。
干杯
答案 0 :(得分:7)
不,OL3不会生成任何功能ID。
当读取特征时,如果根据格式的语义定义了特征ID,则每个格式都可以设置特征ID。对于GeoJSON来说,它是" id"功能的成员(不是属性)。
创建新功能时,应用程序有责任在必要时设置功能ID。使用该功能的setId
方法。如果使用Draw交互,它的drawend
事件可能会有用。
您还应该注意OL3中有关功能ID的这些事实:
没有重复ID的功能可能位于同一来源中。如果将某个要素添加到存在具有相同ID的要素的源,则会忽略该新要素。
功能ID会被比较为字符串,因此1234
和"1234"
被视为相等。
根据每种格式的功能标识符规范序列化功能时,会包含ID。