แนะนำตัวอย่างการพัฒนาเว็บโดยใช้ Longdo Map API
เคยมีความรู้สึก “Disneyland effect” ไหมครับ เวลาไปเที่ยวที่บางแห่งที่มีนักท่องเที่ยวเยอะมากๆ เช่น ที่ Florence ตรงสะพาน Vecchio หรือ Venice ตรงจตุรัส San Marco หรือ สะพาน Rialto หรือวัด Asakusa ที่กรุงโตเกียว
แล้วรู้สึกว่า เหมือนทั้งหมดรอบๆ ตัวเรานี่คือ นักท่องเที่ยวทั้งนั้น ที่เหลือคือ คนท้องถิ่นที่ก็มาเพื่อให้บริการนักท่องเที่ยว ก็คือ เหมือนเจ้าหน้าที่ใน Disneyland มาทำงานแล้วตกเย็นก็กลับบ้านไหม
เกิดคำถามว่า ตกลงยังมีประชากรที่อาศัยอยู่ในบริเวณนี้จริงๆ บ้างหรือเปล่า แบบที่พักอาศัยอยู่จริง ตื่นเช้าไปทำงาน มีบุตรหลาน เรียนหนังสืออยู่ในเมืองจริงๆ
ก็เลยลองทำเว็บ World CIties Touristy Index ขึ้นมาครับ
โดยแบ่งโลกออกเป็นช่อง grid ละ 1 กม. แล้วก็ดึงค่าประชากรตรง grid นั้นๆ มาเทียบกับ ปริมาณนักท่องเที่ยวที่มาแต่ละปี
แล้วคำนวณเป็น Touristy Index จาก 0 ถึง 10 จากอัตราส่วนของนักท่องเที่ยว ต่อ ประชากรที่อาศัยอยู่ ว่ามากน้อยแค่ไหน ถ้า 9 กว่าๆ ก็คือ แบบว่านักท่องเที่ยวเยอะกว่าคนอยู่อาศัยเยอะสุดๆ
แต่ละ grid ก็ให้ดึงข้อมูลเกี่ยวกับบริเวณนั้น Wikipedia, OpenStreetMap สถานที่ใกล้เคียง รวมถึงภาพจาก Wikimedia มาดูเป็นไอเดียประกอบด้วย

พบว่า
– จริงๆ ใน Venice ก็มีคนอาศัยอยู่เยอะพอสมควรนะ ทั้งเกาะมีเกือบ 50,000 ก็ไม่ใช่ Disneyland ซะทีเดียว

– ก็คือบาง Grid ถึงแม้จะมี Touristy Index สูงมากๆ แต่ถ้ามีประชากรอาศัยอยู่เยอะด้วย

– เมืองไทยเราก็นักท่องเที่ยวเยอะ แต่ประชากรเราก็มากและกระจายตัว (หรือมีตรงไหนในเมืองไทยที่มี Disneyland effect ไหม)

– ตัวเลขนักท่องเที่ยวเป็นการประมาณการจากยอดนักท่องเที่ยวในปี 2025 แล้วเอามากระจายใส่ grid โดยใช้อัลกอริทึมที่ประมาณจากหลายๆ ปัจจัย เช่น จำนวนสถานที่สำคัญ, จำนวนภาพ
– ตอนนี้ใส่ไป 200 เมืองครับ
– ดูแค่ภาพ grid แล้วเดาออกไหมว่าแต่ละภาพคือ เมืองอะไร หรือมี grid ของเมืองไหนน่าสนใจบ้าง
ลองกดเล่นดูเพลินๆ ได้ที่
ปล.
1. ข้อมูลต่างๆ เป็นการประมาณนะครับ ดูพอเป็นไอเดีย อย่ายึดถือตัวเลขจริงจัง หรือ เอาไปอ้างอิง เพราะน่าจะมีข้อผิดพลาดอยู่พอสมควร, ใช้อะไรมาคำนวณบ้าง ลองดูในหน้า About
2. Claude Code เก่ง + เล่นมันส์กว่า Gemini-cli ล่ะ
3. แน่นอนว่าพัฒนาโดยใช้ Longdo Map API v3 (Vector tiles based on MapLibre) บอก AI ว่า ให้ไปดู source code ของ https://mapdemo.longdo.com/ มาเป็นตัวเริ่มต้น และตัวแปร map.Renderer คือ MapLibre object มันก็จะเข้าใจและเขียนได้อย่างเก่งเลย
