美文网首页
使用postgis计算geojson的boundingbox

使用postgis计算geojson的boundingbox

作者: 黄啸_2712 | 来源:发表于2021-11-30 10:12 被阅读0次

docker 安装postgis

docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5433:5432  -d 3c50

docker 安装pgadmin4

docker run -p 5050:80 -e "PGADMIN_DEFAULT_EMAIL=123456@xxx.com.cn" -e "PGADMIN_DEFAULT_PASSWORD=123456" -d 048c

Centos 编译安装ogr2ogr

########## prerequisite
yum -y install gcc gcc-c++
# yum安装pg_config 编译参数依赖
 yum -y install postgresql-devel
# 下载编译库proj
wget http://download.osgeo.org/proj/proj-4.7.0.tar.gz 
tar -zvxf proj-4.7.0.tar.gz
cd proj-4.7.0
./configure
make
make install
# 下载编译库gdal
wget http://download.osgeo.org/gdal/1.11.3/gdal-1.11.3.tar.gz
tar -zvxf gdal-1.11.3.tar.gz
cd gdal-1.11.3
# 增加编译参数
./configure --with-static-proj4=/usr/local/lib --with-threads --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal --with-png=internal --with-libz=internal --with-pg=/usr/bin/pg_config
make
make install
# 创建软链接
ln -s /usr/local/bin/ogr2ogr /usr/local/ogr2ogr

使用ogr2ogr工具将geojson导入到postgis

ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=template_postgis user=postgres password=123456" "hushi.json" -nln hushi_border

使用空间函数查询呼市bounding box

-- calculate bounding box latitude and longitude
select 
st_ymax(wkb_geometry) max_latitude, st_ymin(wkb_geometry) min_latitude, 
st_xmax(wkb_geometry) max_longitude, st_xmin(wkb_geometry) min_longitude 
from json_border;

-- 判断点位是否再多边形边界内
SELECT st_contains(wkb_geometry,(ST_geomfromtext('Point(111.66139176746468 40.82222650907582)', 4326)))
from json_border;

SELECT st_contains(wkb_geometry,(ST_geomfromtext('Point(120.6937623345641 30.505900186044812)', 4326)))
from json_border;

相关文章

网友评论

      本文标题:使用postgis计算geojson的boundingbox

      本文链接:https://www.haomeiwen.com/subject/onzrxrtx.html