使用MySQL找出地理围栏中心(重心)的简单方法
需求
把地理围栏信息的中心(重心又或者叫做质心)找出来
注意点
一定要注意,需要第一个点和最后一个点相同,才能形成闭合多边形
,这点很重要,不然会报错
> 3037 - Invalid GIS data provided to function st_geometryfromtext.
下面是正文
数据库:mysql
1.创建表 需要用MyISAM引擎
建表的时候要用MyISAM引擎才有geometry数据类型
字段类型 选择geometry
我这里建表只用了一个id和一个value字段
2.插入数据,使用POLYGON数据格式
插入数据values里面使用 ST_GeomFromText ( ‘POLYGON( 你的点位经纬度list )’)
经纬度用空格分割,点位用逗号分隔
插入示例:
INSERT INTO test (value ) VALUES( ST_GeomFromText ( 'POLYGON((104.141035 30.744607,104.141969 30.745554,........,104.143137 30.743148,104.14116 30.744064,104.141035 30.744607))' ) ),...多个围栏...( ST_GeomFromText ( 'POLYGON((104.141035 30.744607,104.141969 30.745554,........,104.143137 30.743148,104.14116 30.744064,104.141035 30.744607))' ) );
插入结果:
3.使用函数 ST_Centroid(A)查询
要用质心函数 ST_Centroid(A) 来进行查询
select ST_Centroid(value) from test;
结果出来是point点,也就是这个围栏对应的中心,也就是重心:
mysql> select id,ST_Centroid(value) from test;
+-----+----------------------------------------+
| id | ST_Centroid(value) |
+-----+----------------------------------------+
| 287 | POINT(104.773746348887 30.691273417045) |
| 288 | POINT(104.732713791771 30.6562428532069) |
| 289 | POINT(104.62874195557 30.7420878262838) |
| 290 | POINT(104.496235043799 30.617476753851) |
| 291 | POINT(104.475694673563 30.8735092913122) |
| 292 | POINT(104.467878382901 30.9512705394996) |
| 293 | POINT(104.378651196693 30.7213556078043) |
| 294 | POINT(104.383316868526 30.4877856514958) |
再强调一下
注意点
需要第一个点和最后一个点一样才能形成闭合多边形
否则会报错
3037 - Invalid GIS data provided to function st_geometryfromtext.
参考:
MYSQL空间查询函数
MySQL的空间查询
使用MySQL找出地理围栏中心(重心)的简单方法相关推荐
- 在 Linux 上找出并解决程序错误的主要方法【转】
在 Linux 上找出并解决程序错误的主要方法[转] 参考文章: (1)在 Linux 上找出并解决程序错误的主要方法[转] (2)https://www.cnblogs.com/sky-heaven ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
- 【转】预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法...
[转]预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法 原文地址:http://www.iruanmi.com/upgrade-win8-china-to-a-higher- ...
- Sketch小技巧—画出各种星型和多边形的简单方法
sketch拥有很棒的矢量工具以及基本的形状.这十分有利于任何一项制图的起步,无论是网页设计或是图标的设计,或者其他.在Sketch中你能轻松设 计图层面板,而且在这里我们提供你可能需要的各种操作功能 ...
- mysql找出两个结果集不同数据_如何快速对比MySQL两个不同实例上的数据并找出差异...
在MySQL运维中,研发同事想对比下两个不同实例上的数据并找出差异,除主键外还需要对比每一个字段,如何做呢? 第一种方案,写程序将两个实例上的每一行数据取出来进行对比,理论可行,但是对比时间较长. 第 ...
- MySQL找出未提交事务的信息
目录 一.processlist中的未提交事务 二.information_schema.innodb_trx中的未提交事务 三.performance_schema.events_statement ...
- MySQL: 找出员工表中最高、第二高、第N高的薪水
假设有如下所示的员工薪水表: 找出表中最高的薪水非常简单,编写下面的SQL即可: SELECT max(Salary) as HighestSalary FROM Employee; 利用查询的嵌套, ...
- mysql找出课程相同的两个学生_day41 mysql 学习 练习题重要
1.查询课程编号"001"比课程编号"002" 成绩高的所有学生的学号**** #把两个表同时放过来(并且都命名一个新的名字)一起查, #1先找出所有包含学科为 ...
- 如何快速找出电脑对应cisco交换机接口的方法
场景:楼层信息点与交换连接,但没有拓扑图,造成发生故障难以快速找出问题线路,以往的做法是拔线看状态,比较二.升级版是巡线仪巡,也比较二.这么干了好多年才发现接入层实际可以在交换上通过mac地址表来找对 ...
最新文章
- 设计模式之外观模式(Facade)摘录
- 【java】 linux下利用nohup后台运行jar文件包程序
- 开的什么源?——第三篇:草根创业
- 每天学一点儿shell:Linux三剑客——awk命令
- 放置游戏如何成爆款?我们在《最强蜗牛》中找到了答案
- Mac MongoDB未正常关闭导致重启失败
- OpenBSD 将迎来原生的 Hypervisor
- netcore 实现一个简单的Grpc 服务端和客户端
- Microsoft Caffe(msCaffe)无GPU快速配置
- 智能对话系统之多轮对话
- python制作adobe photoshop插件_Adobe Ps 2021已上线,新功能秒杀一切插件
- iredmail mysql_centos 7搭建邮件服务器iRedMail
- 数字图像处理,相位相关算法解决图像的刚性平移问题
- 刷IP工具、刷IP软件的原理和工作过程
- 无形胜有形——0day破解组织探秘
- “双一流”哈尔滨工程大学成立人工智能有关学院,打造一流学科群!
- 镜头眩光如何避免 镜头眩光避免方法
- 清华学霸讲计算机,清华学霸的霸气演讲!看完后才明白人与人的差距就是这样拉开的!...
- 利用腾讯漏洞,QQ群日拉万人精准流量的方法
- 微信小程序合成二维码海报
热门文章
- git新建分支并切换分支
- oracle10g 64下载,oracle10g
- mysql设置乐观锁_mysql数据库怎么设置乐观锁
- java计算机毕业设计Vue潍坊学院宿舍管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
- LeetCode224 基本计算器
- emmc存储安装linux,eMMC 分区管理
- 共研开源新未来:openKylin单位会员沙龙沪上“花开”
- java读取properties文件_java读取properties文件的几种方法
- DHCP协议(或许是最详细的版本)
- android自动画线,Android自定义View——扇形统计图