docker-postgis

0712 更新
Postgre postgis 版本关系

注意修改密码

docker run -d --restart=always  --name vbox-postgis -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgis/postgis:13-3.1-alpine 

#拉取最新的postgresql12+postgis3.0的镜像
docker pull geographica/postgis
#生成容器
docker run -d --name sm-postgis -p 5432:5432 -e POSTGRES_PASSWORD=postgres  geographica/postgis:latest

#进入postsql终端
docker exec -ti sm-postgis psql -U postgres

#进入bash终端
docker exec -ti sm-postgis bash
#参考2
docker run -d --name dz-postgis -p 5432:5432 -e POSTGRES_PASSWORD=postgres  postgis/postgis
docker exec -ti dz-postgis psql -U postgres

 


# Docker部署Geoserver
# 获取镜像
docker pull kartoza/geoserver
# 启动容器
# docker run -d -p 8080:8080 --name geoserver kartoza/geoserver:2.16.2
docker run -d -p 8080:8080 --name geoserver kartoza/geoserver
# 将主机的/data/geoserver_data挂载到容器的/etc/letsencrypt下
# mkdir -p /data/geoserver
docker run -d -v /data/geoserver:/etc/letsencrypt -p 8080:8080 --name geoserver kartoza/geoserver
# 进入终端
docker exec -it geoserver bash
#打开 http://对应IP地址:8080
#登录(使用默认用户名和密码)
#Username: admin
#Password: geoserver

为postgresql安装postgis扩展模块:
1、安装postgis
2、在指定数据库下执行下面语句
CREATE EXTENSION postgis
3、验证:执行下面语句不报错即可
SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText(‘POINT(-87.71 43.741)’,4326)

4. 可选扩展


-- postgis的基本核心功能,仅支持地理图形(矢量要素),在其他Extension前启用。
CREATE EXTENSION postgis;

-- 对栅格数据的支持。
CREATE EXTENSION postgis_raster;

-- 拓扑功能的支持。
CREATE EXTENSION postgis_topology;

-- TIGER指的是(拓扑集成地理编码和参考),这个是美国人口普查局的GIS数据,提供了美国全国的行政区划、交通道路、水系等空间数据。
-- 这个Extension提供了TIGER数据的地理编码支持,需要注意的是这个Extension启用前,需要先启用fuzzystrmatch(字符串模糊查询)Extension,
-- 以及可选的address_standardizer(TIGER数据地址规则化)
-- address_standardizer_data_us(地址规则化示例数据集)Extension。
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;

-- 这个Extension主要是集成了CGAL[2](Computational Geometry Algorithms Library,计算几何算法库),
-- 来进行三维空间数据的空间运算,例如[3]、ST_3DDifference、ST_3DUnion 等,可见是通常空间运算在三维空间上的拓展。

CREATE EXTENSION postgis_sfcgal; 

-- 这个Extension可以利用OGR读取外部的GIS数据(例如Shepfile),其实是结合了OGR和PostgreSQL的foreign data wrappers。
CREATE EXTENSION ogr_fdw;

-- pgrouting提供了对路网的分析支持,包括双向Dijkstra最短路径等10多种功能。
-- debian下安装 apt install postgresql-X-pgrouting
CREATE EXTENSION pgrouting;

-- 提供对LiDAR点云的支持,提供对点云数据的存储。这个很有意思,这里多说一点。启用pointcloud Extension的PostgreSQL 数据库,
-- 可以利用PDAL进行LiDAR点云数据的读取和保存。PADL是一个用于读取点云数据的转换和处理库,它替代了LibLAS,
-- 所以PADL+pointcloud PostgreSQL可以作为一个不错的点云数据管理方案。
--  apt install postgresql-X-pointcloud
CREATE EXTENSION pointcloud;
CREATE EXTENSION pointcloud_postgis;

5. 可选扩展2


-- 安装扩展成功以后,就可以通过uuid_generate_v4()或uuid_generate_v1()查询
create extension "uuid-ossp";  

6. Postgis,火星坐标,转换,函数
geoc-pg-coordtransform
geoc-pg-coordtransform.sql

参考
https://help.aliyun.com/document_detail/279473.html
https://zhuanlan.zhihu.com/p/159103073
https://blog.csdn.net/fct2001140269/article/details/102955584
https://blog.csdn.net/u010206379/article/details/109764629

批处理cmd 常规头-目录右键运行CMD


@REM ###################################################### 
@REM 可选默认使用utf-8 
@REM chcp 65001
@REM ###################################################### 
@cls && echo off &&echo PAN:"%~d0" CD:"%~dp0" FILE:"%~f0"
@cd /d %~dp0 && echo CD:"%cd%" 
@REM ###################################################### 
@REM echo 倒计时10秒后退出 && for /L %%i in (1 1 10) do set /p a=■<nul&ping /n 2 -w 100 127.0.0.1>nul
@REM ###################################################### 

windows 目录右键运行CMD
保存以下为 cmd.reg 文件然后双击导入


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here]
@="CMD"
"Icon"="cmd.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here\command]
@="cmd.exe /s /k pushd \"%V\"" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here]
@="CMD"
"Icon"="cmd.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here\command]
@="cmd.exe /s /k pushd \"%V\""


[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="CMDAdmin"
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="CMDAdmin"
"HasLUAShield"=""
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\"" 


[HKEY_CLASSES_ROOT\Drive\shell\runas]
@="CMDAdmin"
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Drive\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere]
@="在此处打开命令提示符"
"Icon"="cmd.exe"
[HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\""
[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere]
@="在此处打开命令窗口"
"Icon"="cmd.exe"
[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\""
[HKEY_CLASSES_ROOT\Drive\shell\OpenCmdHere]
@="在此处打开命令窗口"
"Icon"="cmd.exe"
[HKEY_CLASSES_ROOT\Drive\shell\OpenCmdHere\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\""
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\OpenCmdHere]
@="在此处打开命令窗口"
"Icon"="cmd.exe"
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\OpenCmdHere\command]
@="PowerShell -windowstyle hidden -Command \"Start-Process cmd.exe -ArgumentList '/s,/k, pushd,%V' -Verb RunAs\""

 

Win超级小工具

Windows-Kernel-Explorer
https://github.com/AxtMueller/Windows-Kernel-Explorer

Sysinternals Utilities
https://docs.microsoft.com/zh-cn/sysinternals/downloads/
常用三项,
Autoruns,启动管理
Process Explorer,当前进程管理
TCPView,当前网络连接管理,

nirsoft
http://www.nirsoft.net/
多是些小工具

PHP 数据库组件 illuminate database

1. 安装 apnode , 确保 php 可执行

2. composer 安装组件

composer require illuminate/database "7.0"
composer require illuminate/events "7.0"
composer require illuminate/container "7.0"

指定7.0版本,php版本支持7.2

3. 新建index.php

use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;

require 'vendor/autoload.php';

$capsule = new DB;

$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'test',
    'username'  => 'root',
    'password'  => '123456',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);

$capsule->setEventDispatcher(new Dispatcher(new Container));
$capsule->setAsGlobal();
$capsule->bootEloquent();

$data = DB::table('user')->select('*')->get();

var_dump($data);

 

参考:
https://www.mogublog.net/post/2418.html