PHP中的GIS空间函数?

Reg*_*g H 13 php gis

我需要将数据点从一个地理投影(Lat Long,Mercator,UTM)转换为另一个,我想知道是否有一组PHP工具或函数可以做到这一点?我尝试根据我发现的公式自己编写一个,但它不够准确,我无法在任何地方找到更好的公式,所以我想知道某处是否有某些预先打包的功能.如果不这样,那么像PROJ.4这样的东西呢?谢谢!

ame*_*der 8

MapServer/MapScript发行版中有一个Proj4的PHP模块.我认为它是由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);

?>
Run Code Online (Sandbox Code Playgroud)

如果你想这样,你将需要从Mapserver源代码文件夹(mapserver-XXX/mapscript/php3)编译php_proj.c 并在PHP中加载扩展.正如我之前所说,网上没有文档,如果您发现任何问题,请告诉我.

希望这可以帮助.