Something between the line of code.

Wednesday, December 06, 2006

ติด Marker ให้ Google Map

ถ้าคุณต้องการจะติด Marker ลงไปใน Google Map
ก็เพียงแต่เพิ่มบรรทัดนี้ลงไป
map.addOverlay(new GMarker(new GLatLng(13.764700,100.538077)));
ตัวเลขในcode เป็นละติจูดและลองติจูด ที่ต้องการจะติด Marker
เช่นถ้าต้องการให้ Marker อยู่กลางภาพ ก็ให้ใช้พิกัดเดียวกับกึ่งกลางภาพ
ดัง code ข้างล่างนี้ (อย่าลืมใส่ Google Map key แทน code123)

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=code123"
type="text/javascript"></script>
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(13.765000,100.538077), 16);
map.setMapType( G_SATELLITE_TYPE );
map.addOverlay(new GMarker(new GLatLng(13.765000,100.538077)));
}
}
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>


อนุสาวรีย์ชัยสมรภูมิ

หมู่เกาะสุรินทร์

(9.421000,97.870000)

อนุสาวรีย์ชัยสมรภูมิ

อนุสาวรีย์ชัยสมรภูมิ (13.764625,100.538077)

Monday, December 04, 2006

เริ่มเขียน Google Maps

ภาพดีๆสักภาพหนึ่ง แทนคำอธิบายได้นับพัน
คุณสามารถนำภาพถ่ายผ่านดาวเทียมสวยๆ จาก Google Maps มาติดในเวบเพจของคุณได้ โดยใช้ JavaScript code แค่ไม่กี่บรรทัด

สิ่งที่คุณต้องเตรียม ก็เริ่มจาก
1.มี URL มีเวบเพจ ที่คุณจะนำภาพไปติด
2.มี Google account เช่น Gmail
ถัดไปก็ไปขอ key code ที่นี่ Google Maps
(จะต้องใช้ URL และ Google account ในการขอ Google Maps key code)
ซึ่งkey codeนี้จะต้องใช้ในการเขียน เวบเพจทุกหน้าที่ต้องการติดรูป จาก Google Maps และใช้ได้เฉพาะกับ URL ที่ได้ลงทะเบียนขอไว้ ในแต่ละ key code เท่านั้น

ได้มาแล้วก็เริ่มกันเลย
Code ประมาณนี้ จะแสดงภาพถ่ายผ่านดาวเทียม ของท้องสนามหลวง
(นำ Google Maps key code (ยาวเหยียด) ที่ได้มา ใส่แทน code123)
(ไฟล์ .html นี้ต้อง upload ไว้ในsubfolder ของ URLที่ลงทะเบียนไว้)
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=code123"
type="text/javascript"></script>
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(13.754976,100.493000),16);
map.setMapType( G_SATELLITE_TYPE );
}
}
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>

จากcodeข้างบน
กำหนด charset เป็น utf-8
คุณก็ต้อง save ไฟล์ .html ซึ่ง Encoding เป็นแบบ utf-8 ด้วย

ในส่วนtag head ของไฟล์ .html
จะมี JavaScript อยู่ 2 ท่อน
ท่อนแรกจะเหมือนๆกันในทุกเวบเพจของคุณ

<script src="http://maps.google.com/maps?file=api&v=2&key=code123"
type="text/javascript"></script>

เป็นการบอกว่ามี JavaScript code ส่วนหนึ่งอยู่ที่ http://maps.google.com
ต้องใส่ Google Maps key code ที่ได้มา ใส่แทนตัวอักษร code123 (ที่ผมลงไว้)

JavaScript ท่อนถัดมาเป็นคำสั่งทำการ load Google Map
ลงไปในส่วน <div id="map" style="width: 500px; height: 300px"></div> ในเวบเพจ

<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(13.754976,100.493000),16);
map.setMapType( G_SATELLITE_TYPE );
}
}
</script>

จะเห็นว่าเป็นการเรียกใช้คำสั่งของ Gmap version2 (Gmap2)
บรรทัด
map.setCenter(new GLatLng(13.754976,100.493000),16);
คือคำสั่ง กำหนดกึ่งกลางภาพเป็นพิกัด ละติจูด 13.754976
ลองติจูด 100.493000 และกำหนด Zoom ระดับ 16
ถ้าคุณไม่ทราบพิกัดของสถานที่ ที่ต้องการ
ลองแวะไปที่ http://maps.google.com/
เลือกดูจนพบสถานที่ ที่คุณต้องการ แล้วคลิกที่ Link to this page
รอสักพักจะแสดง URL พร้อมพิกัด (บน navigate ของ browser) ให้คุณcopyไปใช้ได้
เช่น สนามหลวง (13.754976,100.493000)

หัดเขียน Google Map

สนามหลวง

Sunday, June 04, 2006

eMbedded Visual C++

D/L ได้ฟรี ใช้เขียนโปรแกรมสำหรับ SmartPhone ,PocketPC
SDK for Windows Mobile 2003-based Smartphones
eMbedded Visual C++ 4.0
eMbedded Visual C++ 4.0 SP3
eMbedded Visual C++ 4.0 SP4

แต่เวลาเลือก Device เป็น SmartPhone จริงๆ ที่ connectผ่าน ActiveSync
มักจะมีปัญหา eMbedded Visual C++ connect กับ Device ไม่ได้
(เพราะติด Security อะไรบางอย่าง)
แก้ไขได้ด้วยโปรแกรม spdps.exe
ที่อยู่ใน
C:\Program Files\Windows CE Tools\wce420\SMARTPHONE 2003\Tools
วิธีใช้
1.connect SmartPhone ผ่าน ActiveSync
2.เปิด CommandPrompt แล้ว cd ไปที่
C:\Program Files\Windows CE Tools\wce420\SMARTPHONE 2003\Tools
3.พิมพ์ spdps จะบอกรายละเอียดวิธีใช้
4.ให้พิมพ์ ว่า spdps /create /device


และถ้าเขียนโปรแกรมเสร็จ บางทีอาจมีปัญหา run บนบาง Mobile Deviceไม่ได้
เนื่องจากติด Digital Sign
แก้ไขได้ด้วยโปรแกรม signcode (อยู่ใน โฟลเดอร์เดียวกับ spdps)

Friday, June 02, 2006

HelloWorld on Windows,in CommandPrompt

บน Microsoft Windows มี C compiler ให้เลือกใช้หลายตัว
ปัจจุบัน มีการport GCC(GNU C Compiler) คล้ายๆกับบน Linux มาใช้บน Microsoft Windows แล้ว
อันหนึ่งอยู่ในกลุ่มโปรแกรมชื่อ MinGW(Minimalist GNU for Windows)
อีกอัน runบน Cygwin(Linux-like environment for Windows)
จะขอแนะนำ MinGW ก่อน เพราะรู้สึกว่า เรียกใช้ง่ายกว่า
MinGW นั้น Open-Source สามารถ D/Lมาใช้ได้ฟรี
โปรเจค MinGW(Minimalist GNU for Windows)ทำให้เราสามารถ นำหลายๆCompilerน่าใช้ ที่อยู่บน Linux มาใช้พัฒนาโปรแกรมบน Microsoft Windows ได้
คุณสามารถ D/L MinGW ได้จาก
http://www.mingw.org/download.shtml
เมื่อ D/L มาทีแรก อาจได้มาเพียงโปรแกรมเล็กๆ ขนาดไม่ถึง1MB
แต่เวลาติดตั้ง มันจะไปรวบรวมโปรแกรมต่างๆที่คุณเลือกไว้ เวอร์ชันล่าสุด D/Lมาติดตั้ง (ถ้าเต็มที่ก็ประมาณร้อยเม็กกว่าๆ)

สมมติว่าคุณติดตั้ง MinGW เรียบร้อย ไว้ที่ C:\MinGW
ลองใช้ Notepad เขียนโปรแกรม HelloWorld ที่ใช้แสดงตัวอักษร "HelloWorld, in CommandPrompt"
หรือคุณอาจจะลอง D/L NotePad++ มาใช้
http://sourceforge.net/projects/notepad-plus
ลองเขียนโปรแกรม แล้วsaveไว้เป็น C:\test\helloprompt.c

ต่อมาก็ set path ด้วยคำสั่ง
path=.;C:\MinGw\bin
ลองคอมไพล์ helloprompt.c ด้วยคำสั่ง
gcc helloprompt.c
จะได้ไฟล์ a.exe ออกมา
ลองพิมพ์คำสั่ง a ที่ CommandPrompt
โปรแกรม a.exe จะแสดงตัวอักษร HelloWorld, in CommandPrompt ออกมา

ลองคอมไพล์เป็นไฟล์ชื่ออื่นๆดูบ้าง
คำสั่ง
gcc helloprompt.c -o hello
จะได้ไฟล์ hello.exe ออกมา
คล้ายๆกับบน Linux เลยใช่มั้ยครับ

Monday, May 29, 2006

HelloWorld on Linux,in Terminal

HelloWorld เป็นโปรแกรมที่คลาสสิก เป็นจุดเริ่มต้น ของแทบทุกคน ที่หัดเขียนโปรแกรม
การเขียนโปรแกรมแสดงตัวอักษร "HelloWorld" บน Linux ทำได้หลากหลายวิธี
ขอเริ่มจาก ในแบบที่ทำงานใน Terminal

ลองเลือก Editorอะไรก็ได้ สักตัวที่คุณชอบ
ผมขอแนะนำ emacs เพราะมันมีอะไรหลายๆอย่างที่น่าสนใจ และ อยู่คู่กับ GNU Linux มาตั้งแต่ ยังไม่มี Linux เลยด้วยซ้ำ
ลองเปิด Terminal แล้วพิมพ์ว่า
emacs helloterminal.c
สร้างไฟล์ helloterminal.c มีตัวอักษร ดังตัวอย่าง ข้างล่าง

แล้วคลิกที่ File >> Save ใน emacs
ปิด emacs กลับมาที่ Terminal คุณจะพบไฟล์ helloterminal.c ใน directoryปัจจุบัน
ต่อมาก็คอมไพล์ ด้วยคำสั่ง
gcc helloterminal.c
จะได้ไฟล์ a.out ออกมา
ลอง run ไฟล์ a.out โดยพิมพ์ว่า
./a.out

ถ้าอยากได้ไฟล์เป็นชื่ออื่นก็ใช้ option เป็น -o แล้วตามด้วยชื่อไฟล์ใหม่ ดังตัวอย่างข้างล่างนี้