Я должен преобразовать точки данных из одной географической проекции (Lat Long, Меркаторский, UTM) другому, и интересно, существует ли ряд инструментов PHP или функций, которые могут сделать это? Я пытался писать тот сам на основе формул, которые я нашел, но это не было достаточно точно, и я не могу найти лучшие формулы нигде, таким образом, я задавался вопросом, могли ли быть некоторые предварительно упакованные функции где-нибудь. Сбой этого, что относительно чего-то как PROJ.4? Спасибо!
В дистрибутиве MapServer / MapScript доступен PHP-модуль Proj4. Я думаю, что это сделано DM Solutions, но мне не удалось найти никакой документации в Интернете. Чтобы проверить доступные функции, мне пришлось взглянуть на исходный код.
В любом случае, вот как вы можете преобразовывать координаты между проекциями:
<?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 (mapserver-XXX / mapscript / php3) и загрузите расширение в PHP. Как я уже сказал, в Интернете нет документации, поэтому дайте мне знать, если вы обнаружите какие-либо проблемы.
Надеюсь, это поможет.
Нет согласно стандарту. Попробуйте включить заголовок с макросом:
#define QUOTE(x) #x
и создать printf
как:
printf(QUOTE(hello));
-121--4121263- Вы можете попробовать что-то вроде:
a = [1 2 3 4 5]'
l = size(a)
for i=2:5
a(1:5, i) = a(1:5)
Цикл просто продолжает добавлять столбцы в конец.
-121--4605281-Можно ли запустить сервер ArcGIS? ESRI имеет новый сервис под названием Geometry service, который позволяет выполнять манипуляции с геометрией/преобразование/и т.д. через различные сервисные интерфейсы.
Образец версии можно найти по адресу http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer , с помощью которого можно выполнить тестирование.