gpt4 book ai didi

json - 在 OpenLayers 中保存和恢复几何图形

转载 作者:行者123 更新时间:2023-12-03 11:27:09 29 4
gpt4 key购买 nike

上下文:我是 OpenLayers 的一个新人,请保持温和。

从根本上说,我有一张 map ,上面有一些绘制的对象。如果我理解正确,我有许多 OpenLayer.Feature.Vector(层?),上面有许多 OpenLayer.Geometry “事物”(如 LinearRing)。

目前,我似乎能够使用 .toString() 很好地表示几何。是的,我怀疑我做错了——请随时指出我正确的方向。

这会产生一个非常可读且可数据库存储的字符串,例如:

  • POINT(-104.74560546875 44.2841796875)
  • Polygon((( - 96.52783203125 44.6796875,-96.52783203125 45.734375,-92.222119140625
  • LINESTRING(-105.71240234375 44.6796875,-106.06396484375 42.658203125,-103.55908203125 42.7021484375,-103.47119140625 45.55859375,-104.65771484375 45.20703125)

  • 是否有相反的方法可以将它们从它们的来源中恢复为对象格式?

    我很想使用 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举一个更广泛的例子。 (查看页面的来源,看看他们是如何做到的)。

    关于json - 在 OpenLayers 中保存和恢复几何图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189884/

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