我有一个形状文件,我想通过使用传单 (http://leaflet.cloudmade.com/) 在网络上显示它。由于传单只支持geoJSON,我应该将shp文件更改为geoJSON。这很容易,因为我可以在 Quantum-GIS 中使用“另存为”功能。
虽然我可以使用 geojson 作为数据库(通过以编程方式读取、编辑和写入文件),但我认为使用“真实”数据库会更好。MySQL 是最流行的一种,它支持空间数据,所以我决定使用 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。这解决了主要问题。只需要在添加功能等方面有点混乱。有更简单的解决方案吗?