我很好奇您的意见,什么是 SpatiaLite 和 OpenLayers 之间最有效的传输格式。目前我正在开发一个基于 SpatiaLite(SQLite 的扩展)和 OpenLayers 的应用程序,并且我使用 GeoJSON 作为传输格式。
我的程序: 1)通过php脚本查询数据库,使用SpatiaLite的函数AsGeoJSON,从而得到geojson格式的数据
2) 使用 php 的 print() 将检索到的数据从 php 变量传输到 JS 变量:
$result = $db->query($query);
$r = '{"type": "FeatureCollection","features": [';
while($row = $result->fetchArray(SQLITE3_ASSOC))
{
$r .= '{"type":"Feature","properties":{}, "geometry":' . $row['geometry'] . '},';
}
$r .= ']}';
print'<script> CadastreBorder = ' . $r . '; </script>';
3) 通过阅读在 OpenLayers 中为矢量图层创建特征
var vectorLayer = new OpenLayers.Layer.Vector(name, {style: style, rendererOptions:
{zIndexing: true}});
var formatGeoJSON = new OpenLayers.Format.GeoJSON({});
vectorLayer.addFeatures(formatGeoJSON.read(CadastreBorder));
map.addLayer(vectorLayer);
有什么方法可以更有效、更好地实现相同的目标?谢谢!