PHP中的GIS空间功能? - php

我需要将数据点从一个地理投影(拉特朗,墨卡托,UTM)转换为另一个,而我想知道是否有一组PHP工具或函数可以做到这一点?我尝试根据发现的公式编写自己的代码,但是它不够准确,而且我在任何地方都找不到更好的公式,因此我想知道某处是否可能有一些预包装的函数。如果失败,那么PROJ.4之类的东西呢?谢谢!

参考方案

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);

?>

如果要采用这种方式,则必须从Mapserver source代码文件夹(mapserver-X.X.X / mapscript / php3)编译php_proj.c并在PHP中加载扩展名。正如我之前说过的,在线没有文档,所以如果您发现任何问题,请告诉我。

希望这可以帮助。

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP Count数组元素 - php

嗨,有人可以解释为什么这会返回“数组由0个元素组成”。 :$arr = array(1,3,5); $count = count($arr); if ($count = 0) { echo "An array is empty."; } else { echo "An array has $count elements.…

PHP:从函数返回值并直接回显它? - php

这可能是一个愚蠢的问题,但是……的PHPfunction get_info() { $something = "test"; return $something; } html<div class="test"><?php echo get_info(); ?></div> 有没有办…

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…