查询的bo无需对应标明,也可
按瓦片查的tile才需要瓦片裁剪,其他查直接返回geojson即可
瓦片-关系固定-四点框---查询ST_MakeEnvelope将四点框转为gemo
st_envelope将geom转四点框--定位--瓦片
st_simplify 抽希可能会由于本身数据就少,再抽取bbox就是null 数据大,或者st_union时会用抽希
mvt---地理数据是像素坐标,地理坐标要转为像素坐标(mvt坐标),mapbox用此坐标显
TileUtil.convert2Pixel(x, y, z, geom);
xyz决定了2点框---会影响返回数据范围 低级别下有数据高级别也有数据
gemo 字节码
wkt POINT (119.18376290000002 40.3943137)
geomStr {"coordinates":[119.18376290000002,40.3943137],"type":"Point"}
SELECT ST_AsGeoJSON(geom) FROM m_tile WHERE t_id =3995498880220266496
SELECT REPLACE(geom, 'nan', '0' ) FROM (
SELECT ST_AsGeoJSON(geom,15,0) geom FROM m_tile WHERE t_id =3995498880220266496) a
获取边界框 再由java取对角线点
SELECT st_astext(st_envelope(st_union(st_envelope(st_setsrid(st_simplify(geom, 0.0001), 4326))))) as center from m_tile WHERE t_id =3995498880220266496
函数说明:
st_intersects 判断两个几何是否存在交集,几何函数要先将参数转化为几何才可用
st_intersects(st_setsrid(geom, 4326), ST_MakeEnvelope(#{box.xmin}, #{box.ymin}, #{box.xmax}, #{box.ymax}, 4326))
ST_MakeEnvelope :根据指定的四点框(2点框)---(实际坐标的轮廓表示),生成gemo
ST_MakePoint, ST_MakeLine, ST_MakePolygon, ST_TileEnvelope
ST_GeomFromText(文本转几何):第一个不采用SRID,并返回没有定义的空间参考系统(SRID=0)的几何图形。第二个函数将SRID作为第二个参数,并返回包含此SRID的几何体作为其元数
st_setsrid:几何信息上加坐标系(没有坐标系的几何也是几何)
st_simplify:抽希函数,容差是一个小于保留阈值
当Geometry对象的尺度远小于容差时,如果启用保留标志位,将不会消失,容差小精度高。
该标志对于渲染引擎很有用,可避免大量非常小的对象从地图上消失从而留下异常的间隙
st_envelope:将几何用最小矩形表示- bbox 边界框 和ST_MakeEnvelope相反
st_union:多个几何对象并集,当前结果集的聚合函数
形式1:输入参数是两个Geometry对象。输出类型可以是Multi类型,非Multi类型或GeometryCollection。如果任意一个输入对象是NULL,返回值也是NULL
形式2:是一个聚合功能函数,输入对象是一个Geometry对象的集合,输出类型可能是Multi类型或非Multi类型。
@Select("")
下一篇:基于形状的匹配提纲