我有一个形状文件,我想通过使用传单(http://leaflet.cloudmade.com/)在网上显示它。由于传单只支持geoJSON,所以我应该将shp文件更改为geoJSON。这是很容易的,因为我可以使用“保存为”的能力,在量子地理信息系统。
虽然我可以使用geojson作为数据库(通过编程方式读取、编辑和写入文件),但我认为最好使用“真正的”数据库。MySQL是最流行的,它支持空间数据,所以我决定使用MySQL。
设想如下:
我的MySQL表中有一列,其类型为“几何学”,请参阅下面的表定义:
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。这解决了主要问题。只需要有点混乱添加功能等。有什么更简单的解决方案吗?
发布于 2012-06-15 03:40:00
虽然可能没有将mysql空间实体转换为geojson的直接方法,但您可以尝试以下方法:
注意,正如其他人所建议的那样,只在实体上调用jsonEncode()就不会对geoJson产生影响。
我个人的建议,不直接回答你的问题,是存储数据的格式,你需要它的检索。它将减少每次需要数据时处理数据所需的开销。
要做到这一点,最简单的方法是按照您的建议以纯文本存储geojson。如果出于任何原因,您还需要以本机格式存储几何图形,则可以将其存储在另一列中。唯一的缺点是保持两列保持同步。
https://stackoverflow.com/questions/10868025
复制相似问题