SWIG Mapscript vs PHP Mapscript

Standard

เคยแต่ใช้ PHP Mapscript มาสะนาน คราวนี้มาลองใช้ SWIG Mapscript ดูบ้าง ก็เลยลองกลับ Python 2.6

มาเปรียบเทียนกันเลยละกัน Code ที่แสดงเป็นการเปลี่่ยนค่า PROCESSING ของ RASTER layer แล้วทำการ QueryByPoint โดยใน PHP เจอปัญหาสามารถกำหนดค่า BANDS ได้เพียง 5 bands แต่ใน python ในนั้นไม่มีปัญหา รวมถึงหากกำหนดใน mapfile เช่นกันคาดว่าจะเป็นในเรื่องของ ขนาด shape result ที่ใหญ่เกินกว่าที่กำหนดไว้

เท่าที่ลองใช้ python mapscript ก็ใช้งานได้ดี โดยเฉพาะในแบบ interactive ทำให้ง่ายต่อการ debug

Python Code

import mapscriptomap=mapscript.mapObj("test.map")

olayer=omap.getLayerByName("testdata")

olayer.status=mapscript.MS_ON

olayer.clearProcessing()

olayer.setProcessingKey("BANDS","1,2,3,4")

queryPoint = mapscript.pointObj(-179.5,89.5)

olayer.queryByPoint(omap,queryPoint,mapscript.MS_SINGLE,-1)

olayer.open()

for i in range(olayer.getNumResults()):

result=olayer.getResult(i)

s=olayer.getFeature(result.shapeindex)

for i in range(olayer.numitems):

print "%s: %s" % (olayer.getItem(i), s.getValue(i)

olayer.close()

PHP Mapscript

dl("php_mapscript.so");$oMap = ms_newMapobj("/srv/maps/modis/config.map");

$oLayer = $oMap->getLayerByName("testdata");

$oLayer->clearprocessing();

$oLayer->setprocessing("BANDS=1,2,3,4");

$oLayer->set("status","MS_ON");

$queryPoint=ms_newPointObj();

$queryPoint->setXY(-179.5,89.5);

@$oLayer->queryByPoint($queryPoint,MS_SINGLE,-1);

$oLayer->open();

for ($i=0;$i< $oLayer->getNumResults();$i++){

             $oResult = $oLayer->getResult($i);

             $oshape = $oLayer->getfeature($oResult->shapeindex);

             foreach ($oLayer->getitems() as $name){

                          echo $name.": ".$oshape->values[$name]."\n";

             }

}

Result

x: -179.5
y: 89.5
value_0 : -9999
value_1 : -9999
value_2 : 4040
value_3 : 4785
value_list : -9999,-9999-4040,4785
red : 0
green : 0
blue : 0

40 thoughts on “SWIG Mapscript vs PHP Mapscript

  1. Pingback: LEWIS
  2. Pingback: SALVADOR
  3. Pingback: RONNIE
  4. Pingback: BRANDON
  5. Pingback: EDUARDO
  6. Pingback: RICARDO
  7. Pingback: RUSSELL
  8. Pingback: DUSTIN
  9. Pingback: PERRY
  10. Pingback: TERRENCE
  11. Pingback: ARTHUR
  12. Pingback: GUY
  13. Pingback: JEFFREY
  14. Pingback: DONALD
  15. Pingback: WALLACE
  16. Pingback: WILLIE
  17. Pingback: PERRY
  18. Pingback: SAM
  19. Pingback: RUBEN
  20. Pingback: BILLY
  21. Pingback: TED
  22. Pingback: CARL
  23. Pingback: ANGELO
  24. Pingback: BOB
  25. Pingback: ROY
  26. Pingback: BERNARD
  27. Pingback: DARYL
  28. Pingback: CLIFTON
  29. Pingback: RAY
  30. Pingback: LAWRENCE
  31. Pingback: JEREMIAH
  32. Pingback: BRUCE
  33. Pingback: MARION
  34. Pingback: JERRY
  35. Pingback: JOEL
  36. Pingback: MARION
  37. Pingback: MITCHELL
  38. Pingback: LEWIS
  39. Pingback: BRUCE
  40. Pingback: JEFFERY

Comments are closed.