第一次postgresql使用经历

本文记录了作者从使用MySQL计算经纬度到海洋距离的低效问题,转向尝试PostgreSQL与PostGIS的过程。通过PostGIS扩展,2秒内完成160万数据的检索,大大提高了效率。同时介绍了如何在PHP中连接和操作PostgreSQL数据库,以及如何判断经纬度点是否在海上。
摘要由CSDN通过智能技术生成

一、需求分析

有这么一个需求,就是给一个经纬度点。判断是否在海洋。如果在海洋中计算经纬度点到最近的海岸线或者海岛的距离。

之前是全球海岸线的shp文件,后来同事帮忙分离成了经纬度的点,我导入到mysql 中然后写了一个算法去计算。一般都需要10分钟吧。感觉效率很低。

后来天地图的哥们推荐说可以用postgresql,我就尝试了一下2秒就算出来了结果。惊呆了!!!故此记录一下使用过程。

二、安装postgresql

1、安装postgresql,这个就是按照文档来的https://www.runoob.com/postgresql/windows-install-postgresql.html

2、创建表格(测试)

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- 最低温度
    temp_hi         int,           -- 最高温度
    prcp            real,          -- 湿度
    date            date
);

3、插入数据

INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');

4、查询数据

SELECT * FROM weather;

三、安装PostGIS

1、下载安装包然后安装就行,参考这个资料https://www.cnblogs.com/zhaoyanhaoBlog/p/10611425.html

2、数据库开启PostGIS扩展

-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D 
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcg
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值