上下文:我是 OpenLayers 的一个新人,请保持温和。
从根本上说,我有一张 map ,上面有一些绘制的对象。如果我理解正确,我有许多 OpenLayer.Feature.Vector(层?),上面有许多 OpenLayer.Geometry “事物”(如 LinearRing)。
目前,我似乎能够使用 .toString() 很好地表示几何。是的,我怀疑我做错了——请随时指出我正确的方向。
这会产生一个非常可读且可数据库存储的字符串,例如:
是否有相反的方法可以将它们从它们的来源中恢复为对象格式?
我很想使用 JSON,但似乎无法让 GeoJSON 接受我的 OpenLayer.Feature.Vector 对象(这是 CLASS_NAME 属性在我凝视内部时所说的)。
非常感谢。
请您参考如下方法:
在我的另一个答案中,我选择了 WKT,因为您提到了它。我现在看到您似乎更喜欢 GeoJSON。
转换矢量图层或Openlayers.Geometry对象为 GeoJSON 字符串,您应该使用 OpenLayers.Format.GeoJSON.write功能:
var geoJSON = new OpenLayers.Format.GeoJSON(),
geoJSONText = geoJSON.write(geometryObject);
请注意,您应该能够将对象传递给此函数,因为(根据文档)它接受 OpenLayers.Feature.Vector 以及 OpenLayers.Geometry 或特征数组。
相反,当你有一个 GeoJSON 字符串时,你可以使用 OpenLayers.Format.GeoJSON.read 将它转换回一个对象。功能:
var geometry = geoJSON.read(geoJSONText, 'Geometry');
第二个参数可让您指示要返回的对象类型。阅读链接到的文档以获取更多信息。
另外,看看 this demo举一个更广泛的例子。 (查看页面的来源,看看他们是如何做到的)。