amestsantim/wkt2epsg

一个PHP库,可以将已知的文本(WKT)投影信息(如 .prj 文件中找到的)转换为标准的EPSG代码。

1.0.1 2020-04-02 05:57 UTC

This package is auto-updated.

Last update: 2024-09-29 05:37:07 UTC


README

一个PHP库,可以将已知的文本(WKT)投影信息(如 .prj 文件中找到的)转换为标准的EPSG代码。

先决条件

  • php >= 7.1
  • ext-sqlite3

安装

通过Composer

可以使用Composer轻松安装此包 - 只需在命令行中添加amestsantim/wkt2epsg包。

composer require amestsantim/wkt2epsg

或者,您可以手动将 voucherator 包添加到您的composer.json文件中,然后从命令行运行composer install,如下所示

{
    "require": {
        "amestsantim/wkt2epsg": "^1.0"
    }
}
composer install

您可以在PHP代码中使用它如下

<?php
require __DIR__ . '/vendor/autoload.php';
use amestsantim\wkt2epsg\Translator;

$finder = new Translator();
echo "EPSG code is " . $finder->wktToEpsg('your wkt string');

如果您在Laravel中使用它,可以从amestsantim\wkt2epsg\Translator类中实例化一个对象,并访问转换方法epsgToWkt()和wktToEpsg()。

用法

$finder = amestsantim\wkt2epsg\Translator();

$finder->epsgToWkt('epsg code');
// Equivalent WKT string or null (if not found)

$finder->wktToEpsg('wkt string');
// Equivalent EPSG code or null (if not found)

文档

该包通过查询包含的SQLite数据库来工作。数据库中有一个名为'epsg'的表,它将已知的文本字符串映射到EPSG代码。它有三个列

  • epsg
  • name
  • wkt

这两个转换方法简单地查询相应的字段,并从另一个列返回相应的值(根据您调用的方法)。

sqlite数据库(epsg.db)是通过从ESRI的arcgis网站的项目坐标系页面(https://developers.arcgis.com/javascript/3/jshelp/pcs.html)抓取创建的。

由于项目坐标系页面可能会更新,我已将与该库一起包含的python3脚本(用于抓取和生成数据库的脚本)包含在内。要这样做,只需从esri目录中运行脚本(esri_scrapper.py)。

我创建了这个库,因为我需要识别shapefile的EPSG代码(shapefile的CRS),尤其是在导入PostGIS时。我使用php-shapefile库,该库将读取并返回来自 .prj 文件的原始WKT文本,但不会提供EPSG SRID。

贡献

如果您有任何有用的改进,请随时提交pull请求。

作者

  • Nahom Tamerat

许可

本项目受MIT许可证的许可

致谢