需求

把地理围栏信息的中心(重心又或者叫做质心)找出来

注意点
一定要注意,需要第一个点和最后一个点相同,才能形成闭合多边形,这点很重要,不然会报错

> 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找出地理围栏中心(重心)的简单方法相关推荐

  1. 在 Linux 上找出并解决程序错误的主要方法【转】

    在 Linux 上找出并解决程序错误的主要方法[转] 参考文章: (1)在 Linux 上找出并解决程序错误的主要方法[转] (2)https://www.cnblogs.com/sky-heaven ...

  2. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  3. 【转】预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法...

    [转]预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法 原文地址:http://www.iruanmi.com/upgrade-win8-china-to-a-higher- ...

  4. Sketch小技巧—画出各种星型和多边形的简单方法

    sketch拥有很棒的矢量工具以及基本的形状.这十分有利于任何一项制图的起步,无论是网页设计或是图标的设计,或者其他.在Sketch中你能轻松设 计图层面板,而且在这里我们提供你可能需要的各种操作功能 ...

  5. mysql找出两个结果集不同数据_如何快速对比MySQL两个不同实例上的数据并找出差异...

    在MySQL运维中,研发同事想对比下两个不同实例上的数据并找出差异,除主键外还需要对比每一个字段,如何做呢? 第一种方案,写程序将两个实例上的每一行数据取出来进行对比,理论可行,但是对比时间较长. 第 ...

  6. MySQL找出未提交事务的信息

    目录 一.processlist中的未提交事务 二.information_schema.innodb_trx中的未提交事务 三.performance_schema.events_statement ...

  7. MySQL: 找出员工表中最高、第二高、第N高的薪水

    假设有如下所示的员工薪水表: 找出表中最高的薪水非常简单,编写下面的SQL即可: SELECT max(Salary) as HighestSalary FROM Employee; 利用查询的嵌套, ...

  8. mysql找出课程相同的两个学生_day41 mysql 学习 练习题重要

    1.查询课程编号"001"比课程编号"002" 成绩高的所有学生的学号**** #把两个表同时放过来(并且都命名一个新的名字)一起查, #1先找出所有包含学科为 ...

  9. 如何快速找出电脑对应cisco交换机接口的方法

    场景:楼层信息点与交换连接,但没有拓扑图,造成发生故障难以快速找出问题线路,以往的做法是拔线看状态,比较二.升级版是巡线仪巡,也比较二.这么干了好多年才发现接入层实际可以在交换上通过mac地址表来找对 ...

最新文章

  1. 设计模式之外观模式(Facade)摘录
  2. 【java】 linux下利用nohup后台运行jar文件包程序
  3. 开的什么源?——第三篇:草根创业
  4. 每天学一点儿shell:Linux三剑客——awk命令
  5. 放置游戏如何成爆款?我们在《最强蜗牛》中找到了答案
  6. Mac MongoDB未正常关闭导致重启失败
  7. OpenBSD 将迎来原生的 Hypervisor
  8. netcore 实现一个简单的Grpc 服务端和客户端
  9. Microsoft Caffe(msCaffe)无GPU快速配置
  10. 智能对话系统之多轮对话
  11. python制作adobe photoshop插件_Adobe Ps 2021已上线,新功能秒杀一切插件
  12. iredmail mysql_centos 7搭建邮件服务器iRedMail
  13. 数字图像处理,相位相关算法解决图像的刚性平移问题
  14. 刷IP工具、刷IP软件的原理和工作过程
  15. 无形胜有形——0day破解组织探秘
  16. “双一流”哈尔滨工程大学成立人工智能有关学院,打造一流学科群!
  17. 镜头眩光如何避免 镜头眩光避免方法
  18. 清华学霸讲计算机,清华学霸的霸气演讲!看完后才明白人与人的差距就是这样拉开的!...
  19. 利用腾讯漏洞,QQ群日拉万人精准流量的方法
  20. 微信小程序合成二维码海报

热门文章

  1. git新建分支并切换分支
  2. oracle10g 64下载,oracle10g
  3. mysql设置乐观锁_mysql数据库怎么设置乐观锁
  4. java计算机毕业设计Vue潍坊学院宿舍管理系统设计与实现源码+mysql数据库+系统+lw文档+部署
  5. LeetCode224 基本计算器
  6. emmc存储安装linux,eMMC 分区管理
  7. 共研开源新未来:openKylin单位会员沙龙沪上“花开”
  8. java读取properties文件_java读取properties文件的几种方法
  9. DHCP协议(或许是最详细的版本)
  10. android自动画线,Android自定义View——扇形统计图