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;
网友评论