mysql – 使用GeomFromText(‘POINT(1 1)’)转换lat / lng对并插入另一列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – 使用GeomFromText(‘POINT(1 1)’)转换lat / lng对并插入另一列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2656字,纯文字阅读大概需要4分钟。
内容图文
![mysql – 使用GeomFromText(‘POINT(1 1)’)转换lat / lng对并插入另一列](/upload/InfoBanner/zyjiaocheng/889/351fad67c66947d283f4824544b09c80.jpg)
在我之前的问题Search for range Latitude/Longitude coordinates我的解决方案是创建下表.
mysql> select * from spatial_table where MBRContains(GeomFromText('LINESTRING(9 9, 11 11)'), my_spots);
+------+---------------------------------+
| id | my_spots | my_polygons |
+------+-------------+-------------------+
| 1 | $@ $@ $@ $@ |
+------+-------------+-------------------+
现在我需要将下表中的现有lat / lng对转换并移动到spatial_table.我将如何构建我的查询以实现此目的?我目前正在使用下面的查询来插入.
mysql> insert into spatial_table values (1, GeomFromText('POINT(1 1)'), GeomFromText('POLYGON((1 1, 2 2, 0 2, 1 1))'));
Query OK, 1 row affected (0.00 sec)
mysql> insert into spatial_table values (1, GeomFromText('POINT(10 10)'), GeomFromText('POLYGON((10 10, 20 20, 0 20, 10 10))') );
Query OK, 1 row affected (0.00 sec)
现有表格:
+-------------+---------+--------+-----------+----- ------+-------------+--------------+
| location_id | country | region | city | latitude | longitude | name |
+=============|=========|========|===========|============|=============|==============|
| 316625 | US | CA | Santa Cruz| 37.044799 | -122.102096 | Rio Theatre |
+-------------+---------+--------+-----------+------------+-------------+--------------+
解决方法:
这是成功的秘诀:)
我原来的表:
mysql> describe gls;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| location_id | int(255) | NO | PRI | 0 | |
| country | varchar(255) | NO | | | |
| region | varchar(255) | NO | | | |
| city | varchar(255) | NO | | | |
| latitude | float(13,10) | NO | | | |
| longitude | float(13,10) | NO | | | |
+-------------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
第1步:添加新的POINT列
mysql> alter table gls add my_point point;
Query OK, 247748 rows affected (4.77 sec)
Records: 247748 Duplicates: 0 Warnings: 0
第2步:使用lat / lng字段中的值更新my_point.
UPDATE gls SET my_point = PointFromText(CONCAT('POINT(',gls.longitude,' ',gls.latitude,')'));
第3步:检查
mysql> select aswkt(my_point) from gls where city='Santa Cruz';
+--------------------------------------+
| aswkt(my_point) |
+--------------------------------------+
| POINT(-122.1020965576 37.0447998047) |
| POINT(-66.25 -12.2833003998) |
| POINT(-2.3499999046 42.6666984558) |
+--------------------------------------+
内容总结
以上是互联网集市为您收集整理的mysql – 使用GeomFromText(‘POINT(1 1)’)转换lat / lng对并插入另一列全部内容,希望文章能够帮你解决mysql – 使用GeomFromText(‘POINT(1 1)’)转换lat / lng对并插入另一列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。