精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL空間函數實現位置打卡

數據庫 MySQL
項目需求是跟用戶當前位置判斷是否在給定的地理位置范圍內,符合位置限制才可以打卡,其中的位置范圍是一個或多個不規則的多邊形。如下圖,判斷用戶是在清華還是北大。

項目需求是跟用戶當前位置判斷是否在給定的地理位置范圍內,符合位置限制才可以打卡,其中的位置范圍是一個或多個不規則的多邊形。如下圖,判斷用戶是在清華還是北大。

 

MySQL空間函數實現位置打卡

圖形獲取區域坐標

因為項目前端使用微信小程序的wx.getLocation獲取地理位置,為了坐標的一致性,后臺選取區域范圍采用了騰訊地圖的地理位置服務,在應用工具->繪制幾何圖形里,提供了點、線、多邊形和圓形可以方便的選取 看這里 。

在官方提供的示例上稍加改動即可獲取選定的位置坐標。

 

MySQL空間函數實現位置打卡

存儲位置

取到坐標位置后,接著就是怎么存儲?

開放地理空間聯盟(OGC)是一個由 250多家公司,機構和大學組成的國際聯盟,參與開發公開可用的空間解決方案,這些解決方案可用于管理空間數據的各種應用程序。OGC發布了地理信息的 OpenGIS®Implementation 標準,該規范可從 OGC 網站http://www.opengeospatial.org/standards/sfs獲得。為了遵循 OGC 規范,MySQL 將空間 extensions 實現為具有 Geometry Types 環境的 SQL 的子集,提供生成、存儲、分析空間的功能??傊?,MySQL可以滿足我們的需求。

MySQL提供單個的存儲類型 POINT、LINESTRING、POLYGON 對應幾何圖形點、線、多邊形,GEOMETRY 可以存儲三種中的任何一種。同時擁有存儲多種類型的能力, MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION依次對應單個圖形的復數。

回到項目中,我們用到的是 POLYGON ,

建表語句如下:

  1. CREATE TABLE `polygon` ( 
  2.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  3.   `namevarchar(255) DEFAULT NULL
  4.   `polygon` polygon NOT NULL
  5.   PRIMARY KEY (`id`), 
  6.   SPATIAL KEY `d` (`polygon`) 
  7. DEFAULT CHARSET=utf8; 

插入數據

MySQL 支持將Well-Known 文本(WKT)格式和Well-Known 二進制(WKB)格式兩種格式轉換為object類型存儲起來,我們使用更易于理解的WKT格式。對WKB感興趣的可以 看這里 。

插入語句如下:

  1. INSERT INTO `polygon` VALUES ('1''清華大學', GeomFromText('POLYGON(( 
  2. 40.01169924229143 116.31565081888039,39.99304082299905 116.31616541796757,39.99343506780591 116.33297565023167,40.00237067000859 116.33743550702275,40.01340715321479 116.33057418815224,40.01169924229143 116.31565081888039))')); 
  3.  
  4. INSERT INTO `polygon` VALUES ('2''北京大學', GeomFromText('POLYGON((39.99711457525893 116.30450117461078,39.98673259872773 116.30535884106575,39.98673259872773 116.31702308311287,39.99963848242885 116.31598375134854,39.99711457525893 116.30450117461078))')); 

需要注意的是騰訊地圖返回的多邊形的點不是閉合的,而polygon函數需要為了確定多邊形是否閉合要求第一個點和最后一個點是一樣的。如果不是閉合的polygon返回的結果將是NULL,插入語句就會執行失敗。

如果幾何滿足諸如此(非窮舉)列表中的條件,則它在語法上是 well-formed:

  • 線串至少有兩個點
  • 多邊形至少有一個環
  • 多邊形環關閉(第一個和最后一個點相同)
  • 多邊形環至少有 4 個點(最小多邊形是一個三角形,第一個和最后一個點相同)
  • 集合不為空(除了GeometryCollection)

查詢判斷

  1. SELECT * FROM polygon WHERE 
  2.     MBRWithin (ST_GeomFromText('POINT(39.991333490218544 116.30964748487895)'), polygon); 
  3. # 在北京大學 
  4.  
  5. SELECT * FROM polygon WHERE 
  6.     MBRWithin (ST_GeomFromText('POINT(39.988967560246685 116.3286905102832)'), polygon); 
  7. # 不在北大 

細心的同學可能發現了這里的查詢語句里用的是函數,在以往的SQL里如果存在查詢字段上使用函數必然導致索引失效、全表掃描,但是在空間數據上不會,先看 EXPLAIN 語句和結果:

 

MySQL空間函數實現位置打卡

可見MySQL空間類型的數據同樣可以建立索引,使用的關鍵詞是 SPATIAL用法如下:

  1. CREATE TABLE geom (g GEOMETRY NOT NULL); 
  2. CREATE SPATIAL INDEX g ON geom (g); 

常用的空間計算函數

1、判斷兩點之間的距離

  • ST_Distance(g1,g2),返回g1和g2之間的距離。如果任一參數是NULL或空幾何,則 return value 為NULL。

2、圖形1是否完全包含圖形2

  • ST_Contains(g1,g2),返回 1 或 0 以指示 g1 是否完全包含 g2 。還可以用ST_Within(g2,g1)達到相同的效果。

3、不相交

  • ST_Disjoint(g1,g2),返回 1 或 0 以指示 g1 是否在空間上與(不相交) g2 不相交。

4、關于圖形相交的情況比較復雜,包含重疊、外相交等情況,具體可以 看這里

總結

本文通過一個地理位置打卡的需求,使用 MySQL 自帶的 Polygon 數據類型實現了空間數據的存儲,用ST_Contains(g1,g2) 函數代入了后臺預置的地理區域和前端獲取到的用戶地理位置可以得出用戶是否在打卡范圍內。其中還涉及到了 MySQL 在使用函數作為查詢字段的情況下依然可以使用索引,最后延伸了一些其他的空間處理函數。

責任編輯:未麗燕 來源: 古道博客
相關推薦

2010-05-25 15:12:22

MySQL分頁

2010-11-25 11:57:42

MySQL查詢行號

2009-04-16 17:38:24

SQL Server 空間數據智能

2009-02-25 13:41:49

全文搜索內置函數MySQL

2010-10-13 11:24:27

MySQL數據目錄

2010-11-16 11:32:54

ORACLE增加表空間

2010-11-26 16:37:41

MySQL日志文件

2010-10-09 15:35:25

MySQL rand函

2021-10-08 08:58:35

MySQL函數脫敏

2009-10-28 16:31:37

Oracle傳輸表空間

2010-10-27 14:41:45

Oracle查詢用戶表

2009-06-04 09:47:48

MySQL隱藏控件TMPDIR

2021-01-20 13:50:45

MySQL數據庫代碼

2021-09-08 19:35:02

MySQL Keyring加密

2021-07-05 05:30:37

AR物布空間應用

2024-07-09 08:37:13

2020-07-16 10:52:27

釘釘打卡Python

2010-11-25 11:01:33

MySQL日期函數

2011-02-21 13:23:54

微軟 SQL Serv

2021-01-08 08:10:34

MySQL表空間回收
點贊
收藏

51CTO技術棧公眾號

可以在线观看的av网站| 日韩av男人天堂| 国产精品免费精品自在线观看| 最新国产成人在线观看| 国产a一区二区| jizz国产在线观看| 欧美精品大片| 在线播放国产精品| 漂亮人妻被黑人久久精品| 成人免费网站www网站高清| 四虎国产精品成人免费入口| 亚洲 欧美 国产 另类| 青青在线免费观看| 神马精品久久| 国产一区二区三区av电影 | 国产精品偷伦视频免费观看了| av蜜臀在线| 国产精品成人一区二区艾草 | 日韩欧美中文| 亚洲国产三级网| 亚洲欧美日韩三级| 在线天堂资源www在线污| 自拍偷拍欧美精品| 欧美凹凸一区二区三区视频| 国产黄色片网站| 日本欧美大码aⅴ在线播放| 午夜精品视频网站| 亚洲一级生活片| 热久久天天拍国产| 亚洲欧美日韩国产中文| 国产精品亚洲一区二区无码| 亚洲美女色播| 欧美性猛交xxxx乱大交退制版| 国产精品久久中文字幕| 99久久精品免费观看国产| 欧美极品少妇xxxxⅹ高跟鞋| 久久久久天天天天| 日韩一卡二卡在线| 成人动漫一区二区三区| 1区1区3区4区产品乱码芒果精品| 夜夜嗨av禁果av粉嫩avhd| 老牛嫩草一区二区三区日本| 欧美怡春院一区二区三区| 精品无码人妻一区二区三| 一区二区影视| 久久精品人人做人人爽| 久久久久人妻一区精品色| 精品视频99| 亚洲天堂av综合网| 国产全是老熟女太爽了| 欧洲专线二区三区| 亚洲网站视频福利| 一二三四国产精品| 精品国产91乱码一区二区三区四区 | 男人天堂av网| av在线综合网| 精品综合久久久| 日韩一二三四| 国产亚洲欧美日韩俺去了| 欧美一区国产一区| av免费在线一区二区三区| 国产欧美一区二区精品性色超碰| 日韩久久久久久久| 麻豆视频网站在线观看| 亚洲女同女同女同女同女同69| 亚洲欧洲日韩综合二区| 国产精品扒开做爽爽爽的视频| 亚洲人成在线播放网站岛国| 国产欧美久久久久| av福利在线导航| 日韩欧美aaa| 天天爽人人爽夜夜爽| 电影一区中文字幕| 精品国产乱码久久久久久夜甘婷婷 | 国产精品一级黄| 国产精品视频一区二区三区经| 空姐吹箫视频大全| 久久无码av三级| 亚洲欧洲日本国产| 免费在线看污片| 色综合天天狠狠| 欧美一级xxxx| 欧美成人午夜77777| 亚洲奶大毛多的老太婆| 羞羞在线观看视频| 亚洲激情欧美| 国产精品久久久久久久久久小说| 国产麻豆免费观看| 99免费精品视频| 婷婷久久青草热一区二区| 日本黄色片在线观看| 亚洲国产一区二区a毛片| 亚洲中文字幕无码不卡电影| 国产精品99久久久久久董美香| 日韩欧美中文一区| 精品少妇人妻一区二区黑料社区| 久久国产成人午夜av影院宅| 久久久久久久久久久免费精品| 国产在线观看黄色| 国产精品一区二区免费不卡| 欧美精品亚洲| 日本在线观看高清完整版| 在线观看亚洲一区| 性欧美18—19sex性高清| 日韩精品免费一区二区三区| 久久久噜久噜久久综合| 中日精品一色哟哟| 不卡一区中文字幕| 香蕉视频在线网址| 少妇一区视频| 亚洲国产欧美一区二区三区久久| 四虎884aa成人精品| 男人的天堂亚洲| 国产精品毛片va一区二区三区| 99视频在线观看地址| 天天色天天操综合| 中文字幕55页| 偷拍欧美精品| 国产精品无码专区在线观看| 日色在线视频| 偷拍与自拍一区| 麻豆免费在线观看视频| 久久免费精品视频在这里| 欧美在线亚洲在线| 天天干视频在线观看| 亚洲精品成人悠悠色影视| 中文字幕22页| 国产最新精品| 欧美一级电影久久| 色丁香婷婷综合久久| 一区二区三区精品视频| 女人高潮一级片| 色婷婷综合网| 国产在线a不卡| 77导航福利在线| 在线看国产日韩| 好吊视频在线观看| 亚洲在线视频| 蜜桃成人免费视频| 天堂电影一区| 精品夜色国产国偷在线| 97超碰人人干| 99精品视频在线播放观看| 91视频 - 88av| 一区中文字幕| 久久久欧美一区二区| 成人毛片在线免费观看| 亚洲综合成人在线| 国产综合内射日韩久| 亚洲视频久久| 久久99欧美| 日韩电影网站| 在线观看视频亚洲| 91精品国自产| 亚洲精品国产高清久久伦理二区| 制服下的诱惑暮生| 欧美日韩日本国产亚洲在线| 成人一区二区三区四区| www中文字幕在线观看| 亚洲精品av在线播放| 国产精品乱子伦| 国产午夜亚洲精品不卡| 孩娇小videos精品| 久久久久久美女精品| 成人动漫在线视频| 91美女精品| 亚洲人成网站免费播放| 一级久久久久久久| 亚洲综合一二三区| 亚洲av无码一区二区三区观看| 噜噜噜在线观看免费视频日韩| 三区精品视频观看| 久久久久久久久成人| 欧美黑人视频一区| 日韩精品一二| 欧美老女人第四色| 国产小视频在线看| 久久久久久久久久久久久久久99 | 久久亚洲道色| 国产精品成人在线| 日韩电影免费观看| 亚洲欧美中文字幕在线一区| 亚洲一区二区人妻| 亚洲香肠在线观看| 欧美18—19性高清hd4k| 国产曰批免费观看久久久| 久久视频这里有精品| 色综合咪咪久久网| 国产一区高清视频| 91嫩草国产线观看亚洲一区二区 | 亚洲综合一二三| 国产精品无码永久免费888| 亚洲欧美日韩中文字幕在线观看| 亚洲免费影视| 国产911在线观看| 九九综合在线| 亚洲一区二区三区久久| 伊人网在线播放| 成年无码av片在线| 黄色片在线免费看| 亚洲第一二三四五区| 影音先锋国产在线| 天天色 色综合| 特级片在线观看| 欧美国产精品v| 午夜视频在线观看国产| 精品一区二区免费在线观看| 亚洲熟妇av一区二区三区漫画| 天天射综合网视频| 欧美日韩国产综合在线| 国产精东传媒成人av电影| 国产日韩综合一区二区性色av| 欧美在线极品| 久久久久久有精品国产| 黄色网址免费在线观看| 国产午夜精品视频| 少妇激情av一区二区| 日韩欧美的一区二区| 在线免费a视频| 在线精品亚洲一区二区不卡| 91在线看视频| 亚洲国产裸拍裸体视频在线观看乱了| www成人啪啪18软件| 久久久精品综合| 日本免费福利视频| 粉嫩嫩av羞羞动漫久久久| www激情五月| 久久国产精品99久久久久久老狼| 欧美日韩第二页| 国产日韩高清一区二区三区在线| 99er在线视频| 欧美搞黄网站| 日本a级片在线观看| 91视频一区| 亚洲午夜精品福利| 成人综合一区| 在线成人av电影| 天天综合精品| 国产一区一区三区| 一区二区三区网站| 中文字幕色呦呦| 中文字幕乱码亚洲无线精品一区| 中文字幕色一区二区| 欧美电影免费播放| 中文字幕av导航| 久久精品青草| 亚洲天堂第一区| 欧美精品99| 黄色片网址在线观看| 亚洲免费影视| 一级黄色香蕉视频| 全部av―极品视觉盛宴亚洲| 在线观看免费黄网站| 久久精品av麻豆的观看方式| 91视频这里只有精品| 韩国欧美国产1区| 手机在线播放av| a级精品国产片在线观看| 日本免费福利视频| 日本一区二区三区四区| 日本裸体美女视频| 亚洲欧美日韩在线不卡| 国产真人真事毛片| 午夜精品123| 在线免费观看av网址| 欧美日韩国产成人在线91| 国产男男gay网站| 精品精品国产高清一毛片一天堂| 婷婷在线观看视频| 这里只有精品视频在线| 免费黄色在线观看| 欧美精品久久久久| 亚洲美女久久精品| 国产噜噜噜噜噜久久久久久久久 | 日韩一区国产二区欧美三区| 日本黄色大片视频| 揄拍成人国产精品视频| sm国产在线调教视频| 国产+人+亚洲| 成人在线免费| 国产乱码精品一区二区三区中文 | 久久亚洲电影天堂| 热三久草你在线| 91精品免费久久久久久久久| 福利欧美精品在线| 日韩视频专区| 欧美日韩国产综合网| 妓院一钑片免看黄大片| 国产精品88888| 精品人妻无码一区| 亚洲综合色区另类av| 亚洲欧美偷拍一区| 日韩欧美一级在线播放| 久久免费看视频| 欧美情侣性视频| 78精品国产综合久久香蕉| 国产精品久久一区二区三区| 不卡日本视频| 3d动漫一区二区三区| 久久爱www久久做| 亚洲精品视频久久久| 亚洲自拍偷拍av| 一级二级三级视频| 亚洲欧美日韩另类| 免费在线中文字幕| 91久久夜色精品国产网站| 亚洲成aⅴ人片久久青草影院| 中文字幕一区二区三区四区五区人 | 青青草国产精品视频| 久久电影网电视剧免费观看| 国产福利短视频| 夜夜操天天操亚洲| 亚洲天堂avav| 亚洲香蕉成视频在线观看| 182在线视频观看| 91视频99| 婷婷亚洲最大| 第四色婷婷基地| 国产欧美日韩在线看| 国产尤物在线视频| 精品国产凹凸成av人网站| 国产在线高清视频| 国产精品尤物福利片在线观看| 婷婷激情久久| 18禁免费无码无遮挡不卡网站| 国产99久久久精品| 久久久精品视频免费观看| 欧美福利视频导航| 在线观看免费网站黄| 国产成人综合一区二区三区| 亚洲精品亚洲人成在线| 精品国产一二三四区| av福利精品导航| 久草视频在线观| 日韩av一区二区在线| yellow字幕网在线| 国产视色精品亚洲一区二区| 在线日韩av| 中文字幕天堂网| 天天亚洲美女在线视频| 桃花色综合影院| 97精品伊人久久久大香线蕉| 国产一区福利| 免费看一级大黄情大片| 91视视频在线直接观看在线看网页在线看| 久久精品视频9| 亚洲第一福利在线观看| 久久男人av资源站| 久久九九视频| 日韩成人精品视频| 九九热免费在线| 欧美日韩国产经典色站一区二区三区 | 北条麻妃一区二区三区在线观看| 亚洲精品少妇一区二区| 国产成人精品综合在线观看 | a毛片在线播放| 国产精品免费一区二区三区在线观看 | 91蜜桃在线观看| 国产一级免费视频| 一区二区三欧美| 91精品国产色综合久久不卡粉嫩| 美女黄色片网站| 成人av在线观| 在线免费观看av网址| 久久精品国产亚洲| 无码一区二区精品| 美女日韩在线中文字幕| 波多野在线播放| 69堂精品视频| 久久久123| 欧美国产一区二区在线| 美女网站视频久久| 久久久久无码国产精品不卡| 日韩国产在线看| 欧美成人福利| 日韩av在线播放不卡| 国产午夜亚洲精品不卡| 精品黑人一区二区三区在线观看 | 国产视频久久久| 久久爱.com| 日韩精品视频在线观看视频| 91视视频在线直接观看在线看网页在线看| 中国女人一级一次看片| 久久99精品久久久久久青青91| 欧洲在线一区| 中文字幕第一页在线视频| 精品久久久久久亚洲精品| 求av网址在线观看| 国产精品伊人日日| 麻豆高清免费国产一区| 日本网站免费观看| 中文字幕精品av| 欧美freesex8一10精品| 最新免费av网址| 欧美日韩中文在线| jizzjizz亚洲| 日韩免费一区二区三区| 国产ts人妖一区二区| 少妇无套内谢久久久久| 久久久女人电视剧免费播放下载|