シェープファイルがあり、リーフレット(http://leaflet.cloudmade.com/)を使用してWeb上に表示したいと思います。リーフレットはgeoJSONのみをサポートしているため、shpファイルをgeoJSONに変更する必要があります。Quantum-GISで「名前を付けて保存」機能を使用できるので簡単です。
geojsonをデータベースとして使用することはできますが(プログラムでファイルを読み取り、編集、書き込みすることにより)、「実際の」データベースを使用する方が良いと思います。My-SQLは最も人気があり、空間データをサポートしているため、MySQLを使用することにしました。
シナリオは次のとおりです。
- shpをMySQLに変更します(私はogr2ogrを使用し、次のコマンドを実行するだけです:ogr2ogr -f "MySQL" MySQL: "geo、user = root、host = localhost、password = toor" -lco engine = MYISAM Airports.shp)
- MySQLデータベースをgeojsonにフェッチする<-ここに問題があります
- ajaxを使用してgeojsonを取得し、レイアウトを変更する<-これは簡単なはずです。JQueryは得意です。
My MySQLテーブルに、そのタイプが「GEOMETRY」である列があります。以下のテーブル定義を参照してください。
CREATE TABLE IF NOT EXISTS `airports` (
`OGR_FID` int(11) NOT NULL AUTO_INCREMENT,
`SHAPE` geometry NOT NULL,
`cat` decimal(10,0) DEFAULT NULL,
`na3` varchar(80) DEFAULT NULL,
`elev` double(32,3) DEFAULT NULL,
`f_code` varchar(80) DEFAULT NULL,
`iko` varchar(80) DEFAULT NULL,
`name` varchar(80) DEFAULT NULL,
`use` varchar(80) DEFAULT NULL,
UNIQUE KEY `OGR_FID` (`OGR_FID`),
SPATIAL KEY `SHAPE` (`SHAPE`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=77 ;
そのようなテーブルをgeojson形式に変更する方法はありますか?(私は簡単な方法を好みますが、そうでない場合は、列を配列に変更するだけで問題ありません)
編集: 私はphayesによって書かれたgeophpを使用します。 https://github.com/phayes/geoPHP/wiki/Example-format-converter。これは主な問題を解決します。機能の追加などを少し混乱させるだけです。もっと簡単な解決策はありますか?