簡體   English   中英

PHP中的GIS空間函數?

[英]GIS spatial functions in PHP?

我需要將數據點從一個地理投影(Lat Long,Mercator,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源代碼文件夾(mapserver-XXX / mapscript / php3)編譯php_proj.c並在PHP中加載擴展。 正如我之前所說,網上沒有文檔,如果您發現任何問題,請告訴我。

希望這可以幫助。

您可以使用我從proj4js翻譯的api proj4php,可以在這里找到: https ://sourceforge.net/projects/proj4php/

它從WGS84到Lambert93都很有效,但需要一些修復才能與其他預測一起使用。 我可以搭把手。

再見。

你可以運行ArcGIS Server嗎? ESRI有一項名為Geometry服務的新服務,可讓您通過各種服務接口進行幾何操作/轉換/等。

您可以在http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer上找到可以測試的示例版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM