Мне нужно преобразовать точки данных из одной географической проекции (Lat Long, Mercator, UTM) в другую, и мне интересно, есть ли набор инструментов или функций PHP, которые могут это сделать? Я попробовал написать один сам по формулам, которые я нашел, но он не был достаточно точным, и я не могу найти лучшие формулы где угодно, поэтому мне было интересно, есть ли где-то какие-то расфасованные функции. В противном случае, что-нибудь вроде PROJ.4? Благодаря!Пространственные функции ГИС в PHP?
ответ
Существует модуль PHP Proj4, доступный в дистрибутиве MapServer/MapScript. Я думаю, что это поддерживается DM Solutions, но я не мог найти документацию в Интернете. Чтобы проверить доступные функции, мне пришлось посмотреть исходный код.
Во всяком случае, это то, как вы можете tranform координаты между проекциями:
<?php
//UTM zone 31N
$projDefSrc = array("proj=utm","zone=31","ellps=intl","units=m","no_defs");
$pjSrc = pj_init($projDefSrc);
//WGS84
$projDefDest = array("proj=longlat","ellps=WGS84","datum=WGS84","no_defs");
$pjDest = pj_init($projDefDest);
$x = 446423;
$y = 4610005;
$test = pj_transform($pjSrc,$pjDest,$x,$y);
//Outputs: Array ([u] => 2.3567240656 [v] => 41.6384346565)
print_r($test);
?>
Если вы хотите идти по этому пути, вы должны скомпилировать php_proj.c из папки с Mapserver source кодом (MapServer-XXX/mapscript/php3) и загрузить расширение в PHP. Как я уже говорил, в Интернете нет документации, поэтому дайте мне знать, если вы найдете какие-либо проблемы.
Надеюсь, это поможет.
Можете ли вы запустить ArcGIS Server? ESRI имеет новую службу, называемую службой геометрии, которая позволяет выполнять геометрию манипуляции/преобразования/etc через различные интерфейсы обслуживания.
Вы можете найти примерную версию на http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer, с которой вы можете протестировать.
Вы можете использовать апи proj4php, что я в переводе с proj4js и доступна здесь: https://sourceforge.net/projects/proj4php/
Он отлично работает с WGS84 в Lambert93, но нужно немного исправить, чтобы работать с другими прогнозами. Я могу помочь.
До свидания.
proj4php очень полезен, я его протестировал, результат довольно точный. –
[_ "В этом проекте нет файлов." _] (Http://sourceforge.net/projects/proj4php/files/?source=navbar) – elrobis
- 1. Пространственные функции в HIVE
- 2. Доступные инструменты ГИС?
- 3. PHP, MySQL, пространственные данные и дизайн
- 4. GVNIX и пространственные поиски
- 5. Пространственные данные в PostgreSQL
- 6. Doctrine 2 Пространственные данные
- 7. Interpolate Пространственные данные
- 8. Пересечение линии Пространственные в R
- 9. Сценарий Python в проекте ГИС
- 10. Разработка ГИС в шаблоне MVC
- 11. C# Гис добавить в приложении
- 12. Как объединить две пространственные функции в одном объединении запроса
- 13. Обзор программирования ГИС
- 14. ГИС рекомендаций по проектам
- 15. Android ГИС библиотека тенденция
- 16. Руководящие принципы разработки приложений ГИС
- 17. Расширение ГИС Boost.Geometry
- 18. ГИС: преобразование нескольких полигонов в несколько объектов
- 19. mysql Код ошибки: 3037 Недействительные данные ГИС, предоставляемые функции mbrcontains
- 20. Пространственные названия стран в SSRS
- 21. RGeo: пространственные данные в светильниках
- 22. Пространственные данные SQL Server
- 23. Oracle пространственные полигоны
- 24. Проблемы оптимизации запросов (пространственные)
- 25. Postgres пространственные SQL-запросы
- 26. Как фильтровать пространственные данные
- 27. Autokriging пространственные данные
- 28. итеративный запрос Пространственные записи
- 29. Solr Пространственные расстояния Неправильно
- 30. Пространственные данные и память
Благодарим за помощь. Кажется, это лучший способ, и я нашел документ MapServer (http://www.mapserver.org/MapServer.pdf), в котором есть раздел по установке PHP MapScript и некоторые примеры его использования. До сих пор у меня есть только базовые знания PHP, и у меня в голове то, что я хочу сделать, поэтому я проработал несколько упражнений и прочитал пару книг, чтобы убедиться, что PHP и mySQL способны делать Что мне нужно. Пока это хорошо, и MapScript выглядит как вещь. Спасибо за вашу помощь - я могу попросить вас о какой-то конкретной помощи, когда я получу в ней немного больше. –
Обновление - с моей установкой хостинга, похоже, что это может быть проблемой для добавления php_mapscript.dll. У меня возникла ошибка, когда я использовал команду «dl (« php_mapscript.dll »);». Ошибка: «Предупреждение: dl() [function.dl]: не поддерживается на многопоточных веб-серверах - используйте расширение = php_mapscript.dll в php.ini в .......», поэтому они видят, если они могут изменить файл PHP.ini на своем сервере. –
Имейте в виду, что функции, относящиеся к функциональности PROJ4, не включены в библиотеку mapcript (php_mapscript.dll), а в php_proj.dll. Это другая библиотека, которую вы должны скомпилировать из php_proj.c. У меня есть опыт компиляции в Linux, но, возможно, вы можете попробовать в Windows. – amercader