- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的带有 JOIN 的 sql 查询,如果点在多边形中则连接:
SELECT `oktmo_geometry`.`oktmo` FROM `place`
INNER JOIN `oktmo_geometry` ON ST_CONTAINS(`oktmo_geometry`.`geometry`, Point(`place`.lng, `place`.lat))
但是那个查询很慢。我有 12k 个地方和 300 个几何图形。仅 50 个位置需要 3-5 秒(取决于 MySQL 的版本)。我曾尝试使用 MariaDB,它比 MySQL 快约 50 倍,但我认为仍然很慢。
也许我的查询有问题或其他什么?
oktmo_geometry
。geometry
是多面体类型。
最佳答案
你的速度的很大一部分在这里丢失了:点(`place`.lng,`place`.lat)
这不能被索引,所以原则上它必须遍历每个 `place`
行来完成搜索。
更好的解决方案是创建一个像 `place`.pointvalue
这样的新列,它是从 Point(`place`.lng
, `place`.lat
), 然后索引`place`.pointvalue
.
那么你的查询看起来像
SELECT `mo_geometry`.`oktmo` FROM `place`
INNER JOIN `oktmo_geometry` ON ST_CONTAINS(`oktmo_geometry`.`geometry`, `place`.pointvalue)
我怀疑会快很多。
关于mysql - ST_CONTAINS 性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43977969/
我正在尝试使用以下查询将纬度/经度与特定的相邻位置相匹配 create table address_classification as ( select distinct buildingid,str
我有两张 table 。首先是点,其次是多边形。我需要根据属性 gid 找出哪些点在所需的多边形中。 使用查询:SELECT table1.* FROM table1, table2 WHERE ta
我有一个简单的带有 JOIN 的 sql 查询,如果点在多边形中则连接: SELECT `oktmo_geometry`.`oktmo` FROM `place` INNER JOIN `oktmo_
我正在使用 MySQL ST_Contains 来查明一个区域是否包含在另一个区域中。因此我有一个这样的表: CREATE TABLE tablex (id int, geoPoly MULTIPOL
我已经使用 QGIS 将两个形状文件导入到 pgAdmin 4 (PostgreSQL) 中,我使用 PostGIS 扩展来访问空间命令。 我想检查 Gemeinden(多边形)表中包含的所有 POI
我在使用 PostGIS 2.1.7 和 PostgreSQL 9.4 时遇到了一个奇怪的情况。 我正在尝试将位于加利福尼亚州(纬度:36.671112,经度:-121.662636,正如我们在这张
UPDATE tbl SET city=s.city_name FROM shp AS s WHERE ST_CONTAINS(s.city_geom,geom); 使用上面的代码,我可以将确切的城市
我一直在尝试以下但总是失败, roomTypeSQL = "SELECT spftype FROM cameron_toll_spatialfeatures WHERE ST_Contains(ST_
问题:什么算法/或算法s 使用spatial databases检查地理点(纬度和经度)是否属于“geo rect”(4 个由经线和平行线连接的地理点)? 一开始以为是简单的投影加算法二维平面索引,如
我使用 mysql 空间函数。 我必须了解点是否位于多边形中。 最初我使用 MBRContains 但它以一种奇怪的方式工作,所以我遇到了以下错误:Mysql function MBRContains
我有一个 BigQuery 表,其中包含地址,包括 Lat/Lng 和其他 BQ 表,其中包含从人口普查 shapefile 导入的工作几何定义。对于地址表中的每一行,我试图查找包含它的几何行。 以下
我正在努力让一个简单的 Postgresql/Postgis 语句起作用,我需要一个多边形(在本例中是一个矩形)内的所有点 SELECT * FROM points_table WHERE ST_Co
尝试使用我能找到的 JAR(不确定它们是否是最佳选择,我需要使用 ESRI 并在 Hive 中执行): ADD JAR /home/user/lib/esri-geometry-api-1.2.1.j
我正在使用 postgis 的 ST_LineLocatePoint 找出 LineString 上最接近给定 Point 的点>,并使用 ST_LineInterpolatePoint 从返回的 f
Contains 与 ST_Contains 之间有什么区别以及使用哪一个? Contains(region_data," +"GeomFromText('Point(" + latitude + "
我在使用 mysql 的 st_contains 时遇到了差异。我有一个区域表,其中包含纬度和经度列,我只想查询位于多边形内的所有记录。 当我这样做时,mysql返回多边形之外的记录,并且错过了肯定在
SELECT ST_Contains ( GEOMFROMTEXT( 'POLYGON(18.4560233 73.8691627, 18.456333 73.869013,
MySQL 5.1 是否包含任何 ST_CONTAINS() 等效函数? 我有一些以几何格式存储的多边形数据,我想检查它是否包含一个点查询就像 select * from table_name WHE
我正在尝试连接两个相对较大的几何表。几何体 A 由大的多边形组成。几何 B 由较小的多边形组成。我想左连接几何 A 包含几何 B 的行。几何 B 的多边形可能在几何 A 的边缘,但不在几何 A 的外部
我有一个存储在几何数组中的边界。 (喜欢 {...,...,...})我的目标是执行 ST_Contains 查询。我想看看一个节点是否在该边界内。 我试过类似的东西 SELECT ST_Contai
我是一名优秀的程序员,十分优秀!