Openlayers.Geometry对象的方法很好地将它们转换为WKT (众所周知的文本)。如果您在数据库顶部使用 GIS 图层(例如用于 PostGres 的 PostGIS、用于 SQL Server 的 SQL Spatial、用于 SQLite 的 Spatialite 等),它们应该提供使您能够处理 WKT 的功能。toString
但是,如果您想将该 WKT 转换为新Openlayers.Geometry对象(在浏览器中),您可以使用以下fromWKT函数:
var point = OpenLayers.Geometry.fromWKT('POINT(-104.74560546875 44.2841796875)');
alert(point.toString()); // POINT(-104.74560546875 44.2841796875)
在这里,变量point现在将包含一个新Openlayers.Geometry对象,它与您使用的原始对象具有相同的属性toString()。
如果将数组传递给fromWKT函数,它将返回包含所有生成的几何图形的 GeometryCollection。
var geometryTexts = [
'POINT(-104.74560546875 44.2841796875)'
, 'POLYGON((-96.52783203125 44.6796875,-96.52783203125 45.734375,-92.22119140625 45.734375,-92.22119140625 44.6796875,-96.52783203125 44.6796875))'
, 'LINESTRING(-105.71240234375 44.6796875,-106.06396484375 42.658203125,-103.55908203125 42.7021484375,-103.47119140625 45.55859375,-104.65771484375 45.20703125)'
],
collection = OpenLayers.Geometry.fromWKT(geometryTexts);
在此之后,collection.toString()应该产生以下内容:
GEOMETRYCOLLECTION(POINT(-104.74560546875 44.2841796875),POLYGON(( - 96.52783203125 44.6796875,-96.52783203125 45.734375,-92.22119140625 45.734375,-92.22119140625 44.6796875,-96.52783203125 44.6796875)),LINESTRING(-105.71240234375 44.6796875,-106.06396484375 42.658203125,-103.55908203125 42.7021484375,-103.47119140625 45.55859375,-104.65771484375 45.20703125))