SpatiaLiteとOpenLayersの間の最も効率的な転送フォーマットは何ですか?現在、SpatiaLite(SQLiteの拡張)とOpenLayersに基づいたアプリケーションを開発しており、転送形式としてGeoJSONを使用しています。
私の手順:1)SpatiaLiteの関数AsGeoJSONを使用して、phpスクリプトでDBを検索し、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);
同じ目標をより効率的かつよりうまく達成する方法はありますか?ありがとう!