MYSQL GeomFromText 空间数据操作


CREATE TABLE geoTable(

`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`geo` GEOMETRY DEFAULT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM;


INSERT INTO `GPSserver`.`geoTable` (

`id` ,
`geo`
)
VALUES (
NULL , GEOMFROMTEXT( 'POINT(31.5,42.2)' )
);


INSERT INTO `GPSserver`.`geoTable` (

`id` ,
`geo`
)
VALUES (
NULL , GEOMFROMTEXT( 'LINESTRING(0 0,1 1,2 2)' )
);

SELECT id, ASTEXT( geo ) 
FROM geoTable

LIMIT 0 , 30


http://blog.youkuaiyun.com/iwillsw/article/details/335459

http://dev.mysql.com/doc/refman/5.1/en/geometry-property-functions.html


### 导入空间数据文件至MySQL 为了将空间数据文件导入到 MySQL 数据库中,可以采用多种方法来实现这一目标。通常情况下,这涉及到准备空间数据、创建相应的表结构以及执行批量插入操作。 #### 准备工作 确保安装了支持地理空间扩展的 MySQL 版本[^1]。对于大多数现代版本而言,默认已经包含了这些功能。如果使用的是较旧版本,则可能需要手动启用此特性。 #### 创建表格并定义几何列 在开始之前,先要在数据库内建立好用于存储空间对象的新表: ```sql CREATE TABLE geom_table ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), geom GEOMETRY NOT NULL, -- 定义一个GEOMETRY类型的字段用来保存空间数据 PRIMARY KEY (id) ); ``` #### 使用 `LOAD DATA INFILE` 命令加载 CSV 文件中的 WKT 字符串 当拥有包含 Well-Known Text(WKT)格式的空间字符串的数据集时,可以通过如下 SQL 语句将其转换成二进制形式存入上述新建好的表里: 假设有一个名为 `spatial_data.csv` 的CSV文件,其中每行代表一条记录,并且最后一列为WKT表示法下的坐标信息: ```bash mysql> LOAD DATA LOCAL INFILE '/path/to/spatial_data.csv' INTO TABLE geom_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (name,@dummy,WKBGeomFromText(@geom)); ``` 这里需要注意两点:一是路径应指向实际存放该CSV的位置;二是最后一个参数指定了如何处理来自源文件的最后一列——即通过内置函数 `ST_GeomFromText()` 或者更早版本使用的 `GeomFromText()`, 将文本描述转化为内部可识别的形式后再赋给对应的geometry类型变量[@dummy]. #### 利用 ogr2ogr 工具直接迁移 Shapefile 至 MySQL 另一种更为简便的方式是借助 GDAL/OGR 提供的强大命令行工具 `ogr2ogr`. 这种方式特别适合于那些以 ESRI shapefiles 形式存在的矢量图层。只需简单指定输入输出格式加上必要的连接选项即可完成整个过程: ```bash $ ogr2ogr -f "MySQL" MYSQL:"dbname,user=root,password=secret" /path/to/input.shp ``` 这条指令会自动读取指定目录下所有的 .shp 及其关联文件(.dbf,.shx), 并按照它们所携带的信息构建合适的SQL表达式向目标数据库提交请求.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值