amestsantim / wkt2epsg
一个PHP库,可以将已知的文本(WKT)投影信息(如 .prj 文件中找到的)转换为标准的EPSG代码。
Requires
- php: >=7.1.0
- ext-sqlite3: *
Requires (Dev)
- phpunit/phpunit: ~4.0
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许可证的许可
致谢
- 此包受到sridentify的启发