Replies from geekgok
ถูกใจ เหล่าพนักงานออฟฟิศและ โปรแกรมเมอร์ที่ต่อชีวิตด้วยกาแฟ ^ ^
ส่วนเรื่องเชิงเทคนิคนะครับ
ถ้าเป็นไอเดียเดิมของคุณ ก็ใช้แค่เพียง มือถือหนึ่งเครื่อง + map + GPS + App ที่เก็บพิกัดของร้าน Starbuck ไว้ใน database เท่านี้ครับ
ส่วนเทคนิคที่ใช้ก็
1. ให้ GPS ระบุพิกัดที่เจ้าของมือถือ อยู่ ณ ขณะนั้น ส่งข้อมูลไปยัง app ของคุณ
2. นำพิกัด lat, lng ไปให้ตำแหน่ง Nearby ของ Starbuck โดยมีวิธีการดังนี้
2.1 ใช้จุดที่เจ้าของมือถืออยู่เป็นจุดศูนย์กลาง หลังจากนั้นสร้างพื้นที่วงกลม ระบุรัศมีที่ต้องการค้นหาจากจุดที่อยู่ เช่น ต้องการหาร้าน Starbuck ในรัศมี 1 km จากจุดที่อยู่ ก็สร้างวงกลมที่มีรัศมี 1 km
2.2 ใช้สูตรคำนวณไล่หา พิกัดร้าน Starbuck ที่อยู่ใน Database ว่ามีอยู่ในพื้นที่วงกลมนี้หรือเปล่า
2.3 นำพิกัดร้าน Starbuck ทีอยู่ในรัศมี 1 Km. มาแสดงบนแผนที่
2.4 (option) คำนวณ ระยะห่างระหว่างจุดที่เจ้าของมือถืออยู่ กับร้าน Starbuck แต่ละร้าน
ส่วนวิธีคำนวณอ่านได้จากในนี้ครับ http://www.movable-type.co.uk/scripts/latlong.html
ถ้าเอาแบบ Basic ก็ใช้ ตรีโกณ + ปิทาโกรัสก็ได้ครับ ^ ^
ตามมาตอบให้แล้วนะครับ ^ ^
เอาเชิงความคิดเห็น (ส่วนตัว) ก่อนนะครับ
ถ้าวิเคราะห์กลุ่มเป้าหมายเป็นนักธุรกิจ ผมว่าน่าจะโฟกัสให้กว้างขึ้นกว่านี้นิดนึงครับ
ผมเข้าใจว่าคุณ TheRadioDept. กำลังโฟกัสไปที่กลุ่มนักธุรกิจที่เป็นระดับ Executive
แต่จริงๆแล้วนักธุรกิจ อาจจะรวมถึง entrepreneur หรือพวก Startup ด้วยก็ดีครับ เพราะว่าพวกนี้อาจจะไม่ได้มองแค่ Starbuck พวกเขาจะเหมารวมร้านกาแฟทั้งหมด ที่อยู่ในระดับที่ใกล้เคียงกัน เช่น True coffee, Coffee world เป็นต้น
ซึ่งร้านกาแฟเหล่านี้ก็มีสิ่งที่เขาต้องการ เช่น เครื่องดื่ม โต๊ะ Wifi บรรยากาศ และปลั๊กไฟ เป็นต้น ที่เหมาะแก่การคุยธุรกิจกัน (ผมเข้าใจว่าเดี๋ยวนี้ธุรกิจไม่ได้คุยกันที่สนามกอล์ฟเหมือนเมื่อก่อนแล้วครับ)
เพราะถ้ามองเช่นนี้คุณจะได้โปรเจคที่ใหญ่แล้วครอบคลุมขึ้น รวมถึงอาจจะสามารถขาย app นี้บน market หรือทำ admob หรือ ขายกับร้านค้าอีกทีนึงได้ด้วย 🙂
ถ้ามองเพียง Starbuck ในกรุงเทพฯ ผมคิดว่าน่าจะมีประมาณ 50 -100 สาขา ซึ่่งคุณไม่จำเป็นต้องไปลงพื้นที่เพื่อเก็บพิกัดเลยครับ คุณสามารถใช้พลัง google ค้นหาแล้วเก็บพิกัดได้แล้วครับ
แต่ถ้ามองกว้างขึ้น คือร้านกาแฟ ในระดับกลาง – high end แล้วนี้ตัว Filter เป็น facility แล้วล่ะก็ ระดับความน่าสนใจของโปรแกรมก็น่าดึงดูดผู้ใช้มากขึ้น
และคุณอาจจะต้องลงไปหาร้านกาแฟ แบบที่มีร้านเดียวในประเทศ ซึ่งมีอยู่เยอะแยะมากมายในกรุงเทพฯครับ (สิ่งนี้แหละที่ดึงดูด คอกาแฟ และคนที่จะไปคุยงาน เพราะ Starbuck ไม่ได้ครอบคลุมพื้นที่ทั่วกรุงเทพฯทั้งหมด)
สิ่งแรกถ้าผมจะนัดกับลูกค้า หรือเพื่อน หรือคู่ค้าเพื่อคุยธุรกิจ ผมจะมองหาร้านกาแฟที่มีที่ให้นั่ง (ไม่เต็ม) ก่อนเป็นอันดับแรกเลยครับ หลังจากนั้นก็จะดูว่ามี ปลั๊ก และ Wifi หรือเปล่า (ถ้าจำเป็นต้องใช้)
แล้วก็จะดูว่าร้านคนเยอะ ส่งเสียงโหวกเวกหรือเปล่า (เพราะคงไม่อยากให้การคุยธุรกิจมันเสียสมาธิหรอก จริงไหมครับ) ส่วนเรื่องเครื่องดื่ม ผมมองเป็นเรื่องสุดท้ายเลย
(อันนี้ความเห็นส่วนตัวนะครับ)
แบบแรก (ตามเว็บ http://developer.android.com)
private OnTouchListener mTouch = new OnTouchListener() {
public void onTouch(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
…
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onTouch listener with the implementation above
button.setOnTouchListener(mTouch);
…
}
แบบสอง
protected void onCreate(Bundle savedValues) {
…
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnTouchListener(new OnTouchListener() {
public void onTouch(View v) {
// do something when the button is clicked
}
});
…
}
ลองทำตามความเห็น 2 ลิงค์นี้ดูครับ
http://www.thaiandroidphone.com/thread-16529-1-1.html
ข้อ 1 ผมก็ไม่รู้เหมือนกันครับ ว่าทำไมเป็นแบบนั้น ต้องลองไปหาข้อมูลเพิ่มเติมอีกทีครับ
ส่วนข้อ 2.1 onclick ใช้กับ control อย่างอื่นก็ได้ครับ
2.2 อันนี้ตามความคิดผมนะครับ
onclick น่าจะเป็น การกดและปล่อย ถึงจะทำ event นี้ครับ ถ้ากด แล้วเลื่อนไปที่อื่น แล้วปล่อย จะไม่ทำงานครับ
ontouch แค่กดโดน ก็จะทำ event นั้นแล้วครับ
ถ้าหมายถึงเขียนโค๊ด และทดลองรัน
ถ้าต้องการเช็คว่ามีการ allocate memory ไปเท่าไร ให้ไปดูที่ DDMS ได้ครับ
ตามรูปนี้เลย
http://developer.android.com/resources/articles/images/ddms_allocation_trackerl.png
(หมายถึงอันนี้หรือเปล่า)
จากที่ดูคือ mapView ไม่มีการประกาศ Type ของ mapView ครับ
วิธีการประกาศให้เป็น global นะครับ เหมือนที่คุณประกาศ LocationListener แหละครับ
ประกาศตัวแปรไว้ภายใน class แต่ ไม่ได้อยู่ใน function ใดฟังก์ชันหนึ่ง
ขอตอบเรื่องแผนที่ว่าเป็นไฟล์รูปหรือเปล่า ตอบว่า เป็นครับ
แต่ว่าเป็นรูปนับล้านๆ รูปต่อๆกัน (เป็นฟาร์ม server เลยครับ) โดยแต่ละรูปก็จะแสดงพื้นที่ต่างๆ ในตำแหน่งต่างๆ ณ ระดับการซูมที่แตกต่างกันไปครับ
ลองไปอ่านได้จาก http://code.google.com/intl/th/apis/maps/documentation/javascript/v2/overlays.html
หัวข้อ Custom Map Tiles
ส่วนเรื่องถ้าสร้างแผนที่แบบธรรมดา (ไม่มีการซูม) คิดว่าน่าจะพอจะทำได้ครับ
แต่หากต้องการสร้างแผนที่ให้ซูมเข้าซูมออกได้ จะค่อนข้างยากทีเดียวครับ
(อันนี้พูดถึงว่าเราไม่ได้ copy รูปมาจากใครนะครับ)
ถ้าแนะนำ ผมแนะนำว่าลองใช้ google map api แล้วลอง Custom map tiles ให้เป็น open street map ให้ได้ หรือเป็นรูปอื่นๆที่คุณสร้างขึ้นมาเองก่อนดีกว่าครับ
ถ้าทำตรงส่วนนี้ได้แล้ว คุณจะเข้าใจกลไกการสร้าง map เองครับ
ไม่รู้ว่าคุณ kusanahi ใช้ Eclipse เป็น IDE เขียน Android หรือเปล่าครับ
ถ้าใช้ Eclipse อยู่ สามารถทำตามขั้นตอนดังนี้ครับ
1. เปิด Eclipse ขั้นมา และรัน Emulator ครับ
2. เปลี่ยน mode ใน Eclipse จากที่เดิมเขียนโค๊ดจะอยู่ในโหมด Java ให้เปลี่ยนเป็น DDMS ครับ
3. ถ้าในหน้า DDMS ไม่มี View Devices กับ File Explorer สามารถเข้าไปเปิด View ได้ที่
Windows -> Show View -> Devices และ File Explorer
4. คลิกเลือก Emulator ที่รันอยู่เช่น emulator-5554 เป็นต้น
5. จากนั้นดูที่หน้า File Explorer หลังจากนั้น Browse ไปที่ไฟล์ database ที่ต้องการจะลบ ซึ่งอยู่ตาม path นี้
Data -> Data -> ชื่อแพกเกจของคุณ -> Databases -> ชื่อ Database ที่ต้องการจะลบ
6. แล้วดูที่มุมขวาบนของ View File Explorer จะมีเครื่องหมายลบ (Delete the selection) กดลบครับ
แค่นี้ก็ลบ ไฟล์ Database ใน Emulator ได้แล้วครับ
ถ้าต้องการ map แบบ offline ผมแนะนำ Open Street map ครับ
(จริงๆ ก็มีเจ้าอื่นๆอยู่เหมือนกัน แต่ว่า Open Street map ค่อนข้างจะดีกว่าครับ)
ลักษณะของ Open Street map จะคล้ายๆกับ Wikipedia ครับ คือใช้พลังของ User ช่วยกันสร้างแผนที่โลกขึ้นมา และ ที่สำคัญคือ Open ครับ
เข้าไปดูที่เว็บได้ http://www.openstreetmap.org/
อาจจะเทียบเคียง google map ไม่ได้ แต่ว่าถือว่า ok สำหรับ map offline เลยครับ
ส่วนเขียนลง android จะค่อนข้างยากกว่า google map ครับ
และยังมีเรื่องของ Tile และ map ที่ต้องศึกษาเพิ่มกันอีก (ถ้าอยากทำให้ได้เหมือนกับ google น่ะครับ)
จริงๆแล้วก็ยังพอจะมีแนวทางอื่นอยู่บ้างครับ
คือ เราสร้าง app ส่วนที่ฟรีขึ้นมา (จำกัด Features ที่ใช้งาน) แล้วปล่อยใน market
หากมีคนติดใจ ก็สามารถสั่งซื้อทางเว็บของเราอีกทีนึงก็ได้ครับ (แต่อันนี้ก็ต้องขึ้นกับความน่าเชื่่อถือด้วย)
หรืออีกแบบก็คือ การใช้ Admob ครับ แต่จะได้ผลเมื่อ app ของคุณต้องใช้งาน online อยู่เรื่อยๆ
ถ้าเป็น offline ก็จบครับ
ใช้ Thread ตามที่คุณ wArEzAn บอกครับ
แล้วก็มีพวก Soundpool เป็นตัวจัดการอีกทีหนึ่ง
ลองดูตามเว็บนี้ครับ ปัญหาแบบเดียวกับของคุณเลย
http://stackoverflow.com/questions/3039078/android-playing-multiple-sounds-using-soundmanager/3763993#3763993
เว็บนี้มีคำอธิบาย อ่านง่ายกว่าครับ ^ ^
http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html
ต้องตอบยาวกันเลยทีเดียวครับ
ผมแนะนำให้ลองอ่านจากเว็บนี้ดูครับ น่าจะตรงกับที่คุณต้องการพอดี