<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sarawut Ninsawat &#187; mapserver WxS</title>
	<atom:link href="http://www.ninsawat.com/?cat=26&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ninsawat.com</link>
	<description>A Personal Blog but not private</description>
	<lastBuildDate>Sat, 02 Aug 2025 08:02:05 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>SWIG Mapscript vs PHP Mapscript</title>
		<link>http://www.ninsawat.com/?p=58&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=swig-mapscript-vs-php-mapscript</link>
		<comments>http://www.ninsawat.com/?p=58#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:07:41 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[mapserver]]></category>
		<category><![CDATA[mapserver WxS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[pyhon mapscript mapserver php]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=58</guid>
		<description><![CDATA[เคยแต่ใช้ 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 =&#8230;]]></description>
				<content:encoded><![CDATA[<p>เคยแต่ใช้ PHP Mapscript มาสะนาน คราวนี้มาลองใช้ SWIG Mapscript ดูบ้าง ก็เลยลองกลับ Python 2.6</p>
<p>มาเปรียบเทียนกันเลยละกัน Code ที่แสดงเป็นการเปลี่่ยนค่า PROCESSING ของ RASTER layer แล้วทำการ QueryByPoint โดยใน PHP เจอปัญหาสามารถกำหนดค่า BANDS ได้เพียง 5 bands แต่ใน python ในนั้นไม่มีปัญหา รวมถึงหากกำหนดใน mapfile เช่นกันคาดว่าจะเป็นในเรื่องของ ขนาด shape result ที่ใหญ่เกินกว่าที่กำหนดไว้</p>
<p>เท่าที่ลองใช้ python mapscript ก็ใช้งานได้ดี โดยเฉพาะในแบบ interactive ทำให้ง่ายต่อการ debug</p>
<p><font color="#ff0000"><em><strong>Python Code</strong></em></font></p>
<p><code></code></p>
<pre>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()</pre>
<p><font color="#ff0000"><em><strong>PHP Mapscript</strong></em></font></p>
<p><code> </code></p>
<pre>dl("php_mapscript.so");$oMap = ms_newMapobj("/srv/maps/modis/config.map");

$oLayer = $oMap-&gt;getLayerByName("testdata");

$oLayer-&gt;clearprocessing();

$oLayer-&gt;setprocessing("BANDS=1,2,3,4");

$oLayer-&gt;set("status","MS_ON");

$queryPoint=ms_newPointObj();

$queryPoint-&gt;setXY(-179.5,89.5);

@$oLayer-&gt;queryByPoint($queryPoint,MS_SINGLE,-1);

$oLayer-&gt;open();

for ($i=0;$i&lt; $oLayer-&gt;getNumResults();$i++){

             $oResult = $oLayer-&gt;getResult($i);

             $oshape = $oLayer-&gt;getfeature($oResult-&gt;shapeindex);

             foreach ($oLayer-&gt;getitems() as $name){

                          echo $name.": ".$oshape-&gt;values[$name]."\n";

             }

}</pre>
<p><em><strong><font color="#ff0000">Result</font></strong></em></p>
<p>x: -179.5<br />
y: 89.5<br />
value_0 : -9999<br />
value_1 : -9999<br />
value_2 : 4040<br />
value_3 : 4785<br />
value_list : -9999,-9999-4040,4785<br />
red : 0<br />
green : 0<br />
blue : 0</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>WMS and WCS Time</title>
		<link>http://www.ninsawat.com/?p=53&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wms-and-wcs-time</link>
		<comments>http://www.ninsawat.com/?p=53#comments</comments>
		<pubDate>Wed, 03 Jun 2009 07:29:55 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[mapserver]]></category>
		<category><![CDATA[mapserver WxS]]></category>
		<category><![CDATA[wcs]]></category>
		<category><![CDATA[wms]]></category>
		<category><![CDATA[wcs wms time mapserver]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=53</guid>
		<description><![CDATA[รับรู้มาตั้งนานแล้วว่า Mapserver support WMS และ WCS Time เช่นในกรณี MODIS data set ซึ่งจะมีภาพทุก ๆ วัน ก็จะเป็นประโยชน์มากวิธีการทำก็มีใน http://mapserver.org/ogc/wms_time.html และ http://mapserver.org/ogc/wcs_server.html#wcs-server มาสรุปสั้น ๆ ให้ได้ใจความ ก่อนอื่นทำความเข้าใจก่อนว่า 1 ไฟล์ภาพ คือ ข้อมูล หนึ่งวัน หรือหนึ่งเวลา อาจจะมีหลาย band ก็ได้ ขั้นที่ 1 ก็ทำการสร้าง index file ด้วยคำสั่ง -gdaltindex inde.shp image/*.tif ก็จะได้ไฟล์ index มาซึ่งจะมี colume &#8220;location&#8221;  ที่มี path และ filename อยู่ ก็ทำการสร้าง colume เพิ่มมาใหม่ด้วย โปรแกรม GIS&#8230;]]></description>
				<content:encoded><![CDATA[<p>รับรู้มาตั้งนานแล้วว่า Mapserver support WMS และ WCS Time</p>
<p>เช่นในกรณี MODIS data set ซึ่งจะมีภาพทุก ๆ วัน ก็จะเป็นประโยชน์มากวิธีการทำก็มีใน</p>
<p>http://mapserver.org/ogc/wms_time.html และ http://mapserver.org/ogc/wcs_server.html#wcs-server</p>
<p>มาสรุปสั้น ๆ ให้ได้ใจความ</p>
<p>ก่อนอื่นทำความเข้าใจก่อนว่า 1 ไฟล์ภาพ คือ ข้อมูล หนึ่งวัน หรือหนึ่งเวลา อาจจะมีหลาย band ก็ได้</p>
<p>ขั้นที่ 1 ก็ทำการสร้าง index file ด้วยคำสั่ง</p>
<p>-gdaltindex inde.shp image/*.tif</p>
<p>ก็จะได้ไฟล์ index มาซึ่งจะมี colume &#8220;location&#8221;  ที่มี path และ filename อยู่</p>
<p>ก็ทำการสร้าง colume เพิ่มมาใหม่ด้วย โปรแกรม GIS เช่น Mapwindos, Qgis etc.. ตั่งชื่ออะไรก็ได้ ให้ข้อมูลเป็นชนิด Text</p>
<p>จากนั้นอาจจะต้องหาวิธีใส่ข้อมูลวันที่เข้าไป ในแต่ละ records.</p>
<p>เสร็จไปขั้นแรก</p>
<p>2. ก็มาสร้าง map file โดยทำการสร้าง layer สำหรับ tile index ซึ่งก็เป็นแบบทั่วไปของ Polygon SHP</p>
<p>3. ทำการสร้าง Layer สำหรับภาพ Modis โดยมีข้อมูลที่สำคัญตามนี้</p>
<p>Layer</p>
<p>NAME modisa <em>ชื่อข้อมูล</em></p>
<p>Projection</p>
<p>&#8220;init=epsg:4326&#8243;</p>
<p>End</p>
<p>TYPE RASTER</p>
<p>DUMP True</p>
<p>TILEINDEX &#8220;location&#8221; <em>ชื่อ colume ที่มี path และ filename</em></p>
<p>TILEINDEX &#8220;time_idx&#8221; <em>ชื่อ layer ของ tileindex</em></p>
<p>METADATA</p>
<p>&#8220;wms_timextent&#8221; &#8220;2008-09-01/2008-09-05 <em>จากวันที่ 1 ถึง 5<br />
</em></p>
<p>&#8220;wms_timeitem&#8221; &#8220;dtime&#8221; <em>ชื่อ colume ใน shp ที่มีข้อมูลวันที่</em></p>
<p>&#8220;wms_timedefault&#8221; &#8220;2008-09-01&#8243;</p>
<p>&#8230;&#8230; และอื่นที่ ๆจำเป็นสำหรับ wms implementation</p>
<p>&#8220;wcs_timeitem&#8221; &#8220;dtime&#8221;</p>
<p>&#8220;wcs_timeposition&#8221; &#8220;2008-09-01/2008-09-05&#8243;</p>
<p>&#8230;&#8230;</p>
<p>END</p>
<p>เป็นที่น่าสังเกตว่า</p>
<p>wcs_timeextent สามารถกำหนดเป็น แบบ range ได้ หลังจาก Mapserver version 5.4.1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=53</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WxS Mapscript non-work on NON-CGI environment</title>
		<link>http://www.ninsawat.com/?p=38&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wxs-mapscript-non-work-on-non-cgi-environment</link>
		<comments>http://www.ninsawat.com/?p=38#comments</comments>
		<pubDate>Tue, 13 Nov 2007 08:21:00 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[mapserver WxS]]></category>

		<guid isPermaLink="false">http://www.ninsawat.com/?p=38</guid>
		<description><![CDATA[หลังจากปวดหัว ตั้งแต่เช้า ว่าอยู่ดี ๆ ทำไม script เก่า มันใช้งานไม่ได้ฟะ ในที่สุดก็ค้นพบว่า mandriva 2008 ที่ลงไปนั้นยังไม่ได้ปรับแก้ให้ ใช้ php ใน แบบ cgi ไม่ใช่แบบ mod_phpเพราะจะมีผลกับคำสั่งบางอย่างของ php-mapscript เช่น WxS Mapscriptพอสร้าง object $request = ms_newowsrequestobj(); มันก็เงียบไป แล้วไม่มี error ใด ๆ ทั้งสิ้น ทั้งทางหน้าจอและใน logบางอ่านบอกให้ทำการ parse จาก request url แล้วใส่เข้าไปด้วยวิธี$request = ms_newOwsRequestObj();foreach ($_GET as $k=&#38;gt;$v) { $request-&#38;gt;setParameter($k, $v);}ก่อน $request-&#38;gt;loadparams(); แต่สำหรับเราลองแล้วยังงัยก็ไม่สำเร็จ ก็ไม่เข้าใจก็เลยปรับเปลี่ยนไปใช้ แบบ cgi ดีกว่าถ้าใครเจอปัญหาแบบนี้ลองแก้ตามข้างบนแล้วกันถ้าผ่านนะ Powered&#8230;]]></description>
				<content:encoded><![CDATA[<div xmlns='http://www.w3.org/1999/xhtml'>หลังจากปวดหัว ตั้งแต่เช้า ว่าอยู่ดี ๆ ทำไม script เก่า มันใช้งานไม่ได้ฟะ ในที่สุดก็ค้นพบว่า mandriva 2008 ที่ลงไปนั้นยังไม่ได้ปรับแก้ให้ ใช้ php ใน แบบ cgi ไม่ใช่แบบ mod_php<br/><br/>เพราะจะมีผลกับคำสั่งบางอย่างของ php-mapscript เช่น WxS Mapscript<br/><br/>พอสร้าง object <br/><br/>$request = ms_newowsrequestobj(); <br/><br/>มันก็เงียบไป แล้วไม่มี error ใด ๆ ทั้งสิ้น ทั้งทางหน้าจอและใน log<br/><br/>บางอ่านบอกให้ทำการ parse จาก request url แล้วใส่เข้าไปด้วยวิธี<br/><br/>$request = ms_newOwsRequestObj();<br /><br/><br /><br/>foreach ($_GET as $k=&amp;gt;$v) {<br /><br/>    $request-&amp;gt;setParameter($k, $v);<br /><br/>}<br /><br/><br /><br/>ก่อน $request-&amp;gt;loadparams();  แต่สำหรับเราลองแล้วยังงัยก็ไม่สำเร็จ ก็ไม่เข้าใจ<br/><br/>ก็เลยปรับเปลี่ยนไปใช้ แบบ cgi ดีกว่า<br/><br/>ถ้าใครเจอปัญหาแบบนี้ลองแก้ตามข้างบนแล้วกันถ้าผ่านนะ<br/><br/><br/>
<p class='poweredbyperformancing'>Powered by <a href='http://scribefire.com/'>ScribeFire</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ninsawat.com/?feed=rss2&#038;p=38</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
