我需要將數據點從一個地理投影(Lat Long,Mercator,UTM)轉換爲另一個,我想知道是否有一組PHP工具或函數可以做到這一點?我試圖根據我發現的公式編寫一個,但它不夠準確,我無法在任何地方找到更好的公式,所以我想知道是否可能有某些預先包裝的功能。否則,PROJ.4之類的東西呢?謝謝!在PHP中的GIS空間功能?
回答
在MapServer/MapScript發行版中有一個可用的Proj4 PHP模塊。我認爲這是由DM解決方案,但我找不到任何文件在線。爲了檢查可用的功能,我必須查看源代碼。
無論如何,這是你怎麼能預測之間變換分析座標:
<?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代碼文件夾編譯php_proj.c(地圖服務器-XXX/mapscript/php3)並在PHP中加載擴展。正如我之前所說,網上沒有文檔,所以如果您發現任何問題,請告訴我。
希望這會有所幫助。
您可以運行ArcGIS Server嗎? ESRI提供了一種稱爲幾何服務的新服務,它允許您通過各種服務接口進行幾何處理/轉換/等等。
您可以在http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer找到可以測試的示例版本。
您可以使用我從proj4js翻譯可以在這裏找到的API proj4php:https://sourceforge.net/projects/proj4php/
它從WGS84的偉大工程,以Lambert93,但需要一些修復與他人的預測工作。我可以搭把手。
再見。
proj4php非常有幫助,我測試過了,結果非常精確。 – 2013-09-03 14:53:51
[_「這個項目沒有文件。」_](http://sourceforge.net/projects/proj4php/files/?source=navbar) – elrobis 2015-08-05 15:03:56
- 1. 在Linux上的gis工具功能
- 2. 如何在mysql中關閉打開的多邊形GIS GIS空間擴展
- 3. 在MATLAB中的線條空間功能
- 4. 用於更高性能計算的C++ gis /空間庫
- 5. jQuery中的命名空間功能
- 6. PHP中全局命名空間的運行功能塊
- 7. 功能在PHP中的功能
- 8. php時間前功能
- 9. PHP 5.3的命名空間 - 功能無法正常運行
- 10. Emacs的搜索,空間查找 - 功能
- 11. MySQL的年周多功能空間
- 12. 功能(X,Y),它返回的空間
- 13. 命名空間問題的功能
- 14. PHP功能在一段時間循環
- 15. MySQL的:提供的功能無效的GIS數據st_geometryfromtext
- 16. PHP數組空的功能以外
- 17. 簡單的php if!空功能
- 18. 允許在編碼功能中的空間(Sage ShiftCryptosystem)
- 19. 無法在我的彈出功能中釋放/釋放空間?
- 20. 在Sails中使用MongoDB的地理空間功能
- 21. 不能在PHP的另一個命名空間中使用命名空間類
- 22. php爆炸功能只有第一個白色空間
- 23. 在PHP中打印空間
- 24. PHP分享功能之間的fsockopen頁
- 25. PHP的時間自功能錯誤
- 26. GIS基於Web(php)離線
- 27. 自動裝填在PHP的整體命名空間(功能,而不是一類)
- 28. XPath:刪除空間功能不工作
- 29. IntelliJ IDEA Community Edition 12,Ctrl +空間功能
- 30. 好奇,空間和功能參數
感謝您的幫助。這似乎是最好的方式,我找到了一個MapServer文檔(http://www.mapserver.org/MapServer.pdf),它有一個關於PHP MapScript安裝的部分和一些如何使用它的例子。到目前爲止,我僅僅掌握了PHP的基本知識,並且已經掌握了我想要做的事情,所以我已經完成了一些練習並閱讀了幾本書,以確保PHP和MySQL能夠做到我需要的。目前看起來很不錯,MapScript看起來就是這樣。感謝您的幫助 - 當我進一步瞭解時,我可能會問您一些具體的幫助。 – 2009-12-21 15:52:31
更新 - 與我的託管設置,它看起來像添加php_mapscript.dll可能是一個問題。當我使用命令「dl('php_mapscript.dll');」時出現錯誤。錯誤是:「警告:dl()[function.dl]:多線程Web服務器不支持 - 在你的php.ini中使用extension = php_mapscript.dll .......」,所以他們看到如果他們可以更改其服務器上的PHP.ini文件。 – 2009-12-21 21:16:35
請注意,有關PROJ4功能的功能未包含在mapscript庫(php_mapscript.dll)中,但在php_proj.dll中。這是一個不同的庫,您必須從php_proj.c中編譯自己。我只有在Linux下編譯它的經驗,但也許你可以在Windows上嘗試。 – amercader 2009-12-21 21:53:18