Leaflet 如何作为MVT处理800k点
我有一个大约800k点的表,其中包含存储在PostGIS上的水深测量信息,并使用ST_AsMVTGeom提供。该表连接到使用传单开发的Web应用程序,但特定级别(0-5)一个向量块它包含所有数据,这使得查询速度非常慢(需要几分钟)。我想知道是否存在(whitin PostGIS)根据缩放级别简化行输出的方法 我正在使用以下查询创建平铺:Leaflet 如何作为MVT处理800k点,leaflet,postgis,vector-tiles,Leaflet,Postgis,Vector Tiles,我有一个大约800k点的表,其中包含存储在PostGIS上的水深测量信息,并使用ST_AsMVTGeom提供。该表连接到使用传单开发的Web应用程序,但特定级别(0-5)一个向量块它包含所有数据,这使得查询速度非常慢(需要几分钟)。我想知道是否存在(whitin PostGIS)根据缩放级别简化行输出的方法 我正在使用以下查询创建平铺: SELECT ST_AsMVT(q.*, 'bathymetry_layer', 4096, 'geom') FROM ( SELECT
SELECT ST_AsMVT(q.*, 'bathymetry_layer', 4096, 'geom')
FROM (
SELECT
c.gid AS id,
c.x,
c.y,
c.z,
c.name,
c.inst,
ST_AsMVTGeom(
geom,
ST_MakeEnvelope(-86.8798828125, 20.632784250388028, -86.8359375, 20.673905264672843, 4326),
4096,
256,
false
) geom
FROM bathymetry_table WHERE geom && ST_MakeEnvelope(-86.8798828125, 20.632784250388028, -86.8359375, 20.673905264672843, 4326) AND ST_Intersects(geom, ST_MakeEnvelope(-86.8798828125, 20.632784250388028, -86.8359375, 20.673905264672843, 4326))
) q
解释分析结果:
Index Scan using geodat_batimetria_catoche_xcalak_geom_idx on geodat_batimetria_catoche_xcalak c (cost=0.29..8.56 rows=1 width=101) (actual time=0.117..11539.038 rows=434271 loops=1)
Index Cond: ((geom && '0103000020E610000001000000050000002B8716D9CECB55C0516B9A779CA234402B8716D9CECB55C0D34D621058493540492EFF21FD9E55C0D34D621058493540492EFF21FD9E55C0516B9A779CA234402B8716D9CECB55C0516B9A779CA23440'::geometry) AND (geom && '0103000020E610000001000000050000002B8716D9CECB55C0516B9A779CA234402B8716D9CECB55C0D34D621058493540492EFF21FD9E55C0D34D621058493540492EFF21FD9E55C0516B9A779CA234402B8716D9CECB55C0516B9A779CA23440'::geometry))
Filter: _st_intersects(geom, '0103000020E610000001000000050000002B8716D9CECB55C0516B9A779CA234402B8716D9CECB55C0D34D621058493540492EFF21FD9E55C0D34D621058493540492EFF21FD9E55C0516B9A779CA234402B8716D9CECB55C0516B9A779CA23440'::geometry)
Rows Removed by Filter: 5
Planning time: 7.222 ms
Execution time: 11579.044 ms