3 คะแนน โดย GN⁺ 2024-11-20 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • OpenStreetMap ให้บริการ แรสเตอร์ไทล์ แบบ PNG คงที่มาเป็นเวลานาน แต่ตอนนี้เริ่มโฮสต์ เวกเตอร์ไทล์ ในรูปแบบ Mapbox Vector Tiles (MVT) แล้ว ทำให้วิธีนำแผนที่ไปใช้งานกว้างขึ้น
  • เวกเตอร์ไทล์เปิดให้ผู้ใช้ปรับสไตล์และกฎการเรนเดอร์ได้ และเปิดทางให้ดึงข้อมูลภายในไทล์หรือทำฟีเจอร์อย่าง การสลับภาษาของป้ายกำกับ ได้
  • เว็บไซต์หลักของ OSM ยังใช้แรสเตอร์ไทล์อยู่ แต่สามารถดูเวกเตอร์ไทล์ใหม่ได้โดยตรงผ่าน เว็บเดโม, QGIS และ Leafmap
  • ตัวอย่างไทล์ z14 ใกล้ Burj Khalifa แปลง MVT ขนาด 114KB เป็น JSON ขนาด 1.4MB และเลเยอร์ POI มี 474 เรคคอร์ด พร้อมคีย์เลเยอร์ระดับบนหลายรายการ
  • เมื่อใช้ tiles2columns จะดาวน์โหลด OSM vector tiles ของกรอบขอบเขตที่กำหนด แล้วแปลงเป็น GeoPackage หรือ Parquet ได้ ทำให้นำข้อมูล OSM ที่อัปเดตแล้วไปใช้วิเคราะห์แบบไฟล์ได้ทันทีง่ายขึ้น

จุดที่ OSM tile กำลังเปลี่ยนไป

  • ที่ผ่านมา OpenStreetMap ให้บริการแผนที่ด้วย แรสเตอร์ไทล์ PNG แบบคงที่ ซึ่งมีกฎการเรนเดอร์และสไตล์กำหนดไว้ล่วงหน้า
  • โฮสติงใหม่ให้บริการ Mapbox Vector Tiles หรือ เวกเตอร์ไทล์รูปแบบ MVT
  • เมื่อใช้เวกเตอร์ไทล์ ผู้ใช้ปลายทางจะควบคุมการแสดงผลแผนที่ได้โดยตรงมากขึ้น
    • ปรับสไตล์และกฎการเรนเดอร์
    • ดึง ข้อมูลพื้นฐาน ที่รวมอยู่ในแต่ละไทล์
    • แสดงภาพแผนที่ที่คมชัดขึ้น
    • เปิดความเป็นไปได้ในการสลับภาษาของป้ายกำกับ
  • เว็บไซต์หลักของ OSM ยังคงให้บริการแรสเตอร์ไทล์
  • สามารถดูเวกเตอร์ไทล์ใหม่ได้จาก เว็บเดโม บนอุปกรณ์ส่วนใหญ่ทั้งมือถือและเดสก์ท็อป

เครื่องมือที่ใช้ในการทดลอง

  • ตัวอย่างนี้ใช้ Python และเครื่องมือเชิงภูมิสารสนเทศหลายตัวเพื่อแสดงภาพและวิเคราะห์ข้อมูล OSM
  • เครื่องมือพื้นฐานที่ติดตั้งมี jq, python3-pip, python3-virtualenv
  • ใน virtual environment ของ Python ติดตั้งแพ็กเกจต่อไปนี้
    • leafmap[maplibre]
    • mapbox_vector_tile
    • morecantile
    • notebook
  • DuckDB ใช้ร่วมกับส่วนขยายต่อไปนี้
  • การเรนเดอร์แผนที่ใช้ QGIS 3.40
    • QGIS เป็นแอปพลิเคชันเดสก์ท็อปที่ทำงานบน Windows, macOS และ Linux
    • จำนวนครั้งที่ผู้ใช้ทั่วโลกเปิดใช้งานแอปพลิเคชันอยู่ในระดับประมาณ 15 ล้านครั้งต่อเดือน

เปิดเวกเตอร์ไทล์ใน QGIS

  • ใน QGIS สามารถเพิ่ม OSM vector tiles ได้ผ่าน Layer Menu -> Add Layer -> Add Vector Tile Layer
  • สำหรับการเชื่อมต่อใหม่ ให้ใช้ค่า style URL ต่อไปนี้
  • สำหรับ source URL ให้ระบุ MVT endpoint ต่อไปนี้
  • stylesheet เป็นตัวเลือกเสริม และแม้ไม่มี QGIS ก็สามารถเรนเดอร์ข้อมูลเวกเตอร์ด้วยสีแบบสุ่มได้
  • ใน QGIS พบปัญหา การเรนเดอร์ไอคอน คลาดเคลื่อน
    • เครื่องมือทำแผนที่อื่นสามารถเรนเดอร์ sprite ของสไตล์ดังกล่าวได้ปกติ
    • ใน QGIS ไอคอนจะดูเหมือนไอคอนสีดำที่เบลอ
    • ประเด็นที่เกี่ยวข้องอยู่ที่ QGIS #59492

การเรนเดอร์ด้วย Leafmap และ Jupyter Notebook

  • สร้างโฟลเดอร์ตั้งค่า Jupyter Notebook และตั้งรหัสผ่าน จากนั้นรันเซิร์ฟเวอร์บน 127.0.0.1
  • Notebook ทำงานด้วยสิทธิ์ของผู้ใช้ที่รัน และอาจเปิดเผยไดเรกทอรีปัจจุบันกับไฟล์ย่อยได้ จึงใช้วิธีรันจากโฟลเดอร์ว่าง
  • ใน Leafmap ใช้ leafmap.maplibregl และระบุ colorful.json เป็น style URL เพื่อเรนเดอร์บริเวณรอบ Burj Khalifa
  • ในการเรนเดอร์ด้วย Leafmap ไอคอน POI แสดงผลได้ถูกต้อง

แปลง MVT ให้เป็นข้อมูลที่วิเคราะห์ได้

  • ใช้ไทล์ที่ zoom level 14 ใกล้ Burj Khalifa เป็นตัวอย่าง
  • ใส่พิกัดโดยประมาณ [55.27, 25.2] ลงใน morecantile tiles 14 เพื่อได้พิกัดไทล์ [10707, 7006, 14]
  • ใช้ค่าดังกล่าวดาวน์โหลดไทล์ต่อไปนี้
  • ไฟล์ MVT ขนาด 114KB ถูกแปลงเป็นไฟล์ JSON ขนาด 1.4MB ด้วย mapbox_vector_tile.decode และฟังก์ชันแปลงพิกัด
  • คีย์ระดับบนของไทล์ที่แปลงแล้วมีเลเยอร์ต่อไปนี้
    • addresses
    • bridges
    • buildings
    • ferries
    • land
    • ocean
    • pier_lines
    • pier_polygons
    • place_labels
    • pois
    • public_transport
    • sites
    • street_labels
    • street_polygons
    • streets
    • streets_labels_points
    • water_polygons
    • water_polygons_labels

ดูเลเยอร์ POI ด้วย DuckDB

  • แยกเลเยอร์ pois ออกเป็นไฟล์ JSON ต่างหาก แล้วเปิดวิเคราะห์ด้วย ST_READ ของ DuckDB
  • POI ที่มีค่า cuisine พบ 67 แถว
    • ตัวอย่าง amenity มี restaurant, fast_food, cafe
    • ตัวอย่าง cuisine มี french, greek, american, lebanese, coffee_shop, asian, persian, chicken, pizza
  • จากผล SUMMARIZE ของ DuckDB สามารถตรวจสอบระดับการเติมข้อมูลของ POI ได้
    • เรคคอร์ด POI ทั้งหมดมี 474 รายการ
    • อัตรา null ของ name, name_de, name_en เท่ากับ 29.96% แต่ละฟิลด์
    • อัตรา null ของ amenity คือ 31.86%
    • อัตรา null ของ cuisine คือ 85.86%
    • อัตรา null ของ geom คือ 0.00%
  • ตามเกณฑ์ approx_unique ค่า name มี 258 ค่า, name_de มี 264 ค่า, name_en มี 245 ค่า, amenity มี 27 ค่า และ cuisine มี 39 ค่า

ดึงกรอบขอบเขตด้วย tiles2columns

  • osm_split เดิมเป็นเครื่องมือที่แปลงไฟล์ OSM PBF ที่ GeoFabrik สร้างเป็นไฟล์ GeoPackage แบบมีชื่อ
  • ไฟล์ PBF ของ GeoFabrik เมื่อถึงเวลาที่ประมวลผลได้ อาจเป็นข้อมูลเมื่อหลายวันก่อน
  • OSM vector tiles ใหม่จะอัปเดตทันทีหลังข้อมูลพื้นฐานถูกแก้ไข
  • tiles2columns เป็นยูทิลิตีบน Python ที่ดาวน์โหลด OSM tiles ของกรอบขอบเขตที่กำหนด แล้วแปลงเป็นไฟล์ GeoPackage หรือ Parquet
  • ตัวอย่างกรอบขอบเขตรอบตอนเหนือของ Dubai ดาวน์โหลด 42 ไทล์ และสร้างไฟล์ GeoPackage ขนาดไม่กี่ MB
    • streets.gpkg: 6.8MB
    • buildings.gpkg: 6.2MB
    • pois.gpkg: 1.4MB
    • street_labels.gpkg: 1.4MB
    • land.gpkg: 744KB
  • ไฟล์ GeoPackage ที่สร้างขึ้นสามารถใส่เข้าไปในโปรเจกต์ QGIS ได้โดยตรง
  • ไฟล์ถูกแบ่งตามคีย์ที่ใช้ในไฟล์ OSM MVT ทำให้ระบุ สไตล์ และวิเคราะห์แต่ละเลเยอร์ได้อย่างอิสระได้ง่าย
  • คุณสมบัติของแต่ละ geometry ถูกเก็บไว้ใน คอลัมน์ แยกกัน
  • ตัวอย่างการค้นหา POI ที่มีชื่อใน pois.gpkg ส่งคืน 6,329 แถว และมีชื่ออย่าง Kiku, Fujiya Restaurant, Mövenpick Grand Al Bustan Dubai, McDonald's

2 ความคิดเห็น

 
GN⁺ 2024-11-20
ความคิดเห็นใน Hacker News
  • รู้สึกว่าเรื่อง vector tile ค่อนข้างซับซ้อนอยู่ ยังไม่เจอชุดผสมระหว่างสไตล์กับสคีมาของตัวสร้างไทล์ที่แสดงรายละเอียดได้ในระดับเดียวกับ raster tile แบบเดิม
    แค่ดูสกรีนช็อตในบทความก็เห็นความต่างชัดเจน ภาพแรกมีข้อมูลจำนวนมาก เช่น จุดสนใจอย่างรูปปั้น ร้านค้า โรงละคร จุดชมวิว ถนนที่แสดงเป็นสะพาน ความต่างของสีระหว่างสนามหญ้ากับสวนสาธารณะ ความหนาเส้นที่ต่างกันตามถนน สนามกีฬา ชื่ออาคารและย่าน ลูกศรทางวันเวย์ บางส่วนของอาคาร บันได ต้นไม้ ฯลฯ
    ภาพที่สองมีแค่ป้ายหยุดรถรางหนึ่งจุดกับชื่อถนนหนึ่งชื่อ และชื่อถนนนั้นก็เรนเดอร์ผิดด้วย
    เคยลองใช้สไตล์ openmaptiles, สไตล์พื้นฐานของ protomaps, สไตล์ mapbox รวมถึงตัวสร้างของ protomaps, openmaptiles, mapbox มามากแล้ว แต่ยังไม่มีอะไรที่อ่านง่ายและมีรายละเอียดเยอะเท่า OSM raster tile
    สไตล์แบบเวกเตอร์ซูมและเลื่อนได้ลื่น แก้สไตล์ก็ง่าย แต่ถ้าไม่ได้ใช้เป็นแผนที่พื้นหลังให้ข้อมูลของตัวเอง และต้องการดูข้อมูลแผนที่จริง ๆ มันยังไม่พอ
    บางทีอาจเป็นเพราะข้อจำกัดด้านทรัพยากรคำนวณก็ได้ หากจะแสดงรายละเอียดระดับเดียวกับ OSM raster tile อาจกินทรัพยากรมากเกินไปทั้งฝั่งไคลเอนต์และการสร้างไทล์
    อยากให้ OpenStreetMap เลียนแบบสไตล์ raster เดิมให้ใกล้เคียงขึ้น มากกว่าจะเสนอแผนที่พื้นหลังแบบคอนทราสต์ต่ำ รายละเอียดต่ำอีกแบบหนึ่ง และหวังว่าการปล่อย vector tile สาธารณะครั้งนี้จะทำให้แผนที่เวกเตอร์ที่ละเอียดขึ้นเป็นไปได้

    • โดยพื้นฐานแล้วพูดถูก แต่ก็อาจมองต่างมุมได้ สำหรับฝั่งที่ให้บริการแผนที่ ข้อได้เปรียบหลักของ vector tile ไม่ใช่ประโยชน์เล็ก ๆ อย่างความคมชัดหรือความยืดหยุ่นของสไตล์ แต่คือการลดปริมาณการคำนวณที่ต้องใช้ลงอย่างมาก
      การดูแลโครงสร้างพื้นฐานสำหรับสร้าง raster tile สมัยใหม่เป็นงานค่อนข้างใหญ่
      เมื่อก่อนเคยพัฒนาสไตล์ที่ละเอียดมากสำหรับวางแผนทริปปั่นจักรยานอยู่นาน: https://stevebennett.me/2015/01/14/cycletour-org-a-better-ma...
      พยายามทำซ้ำด้วย vector tile หลายครั้ง แต่ค่อนข้างยากที่จะใส่รายละเอียดให้พอโดยไม่ชนข้อจำกัดด้านขนาด และไทล์ Mapbox พื้นฐานก็มีข้อมูลที่ต้องใช้น้อยกว่ามาก
      อย่างไรก็ตาม vector tile ก็มีทางเลี่ยงบางอย่างที่ raster tile ไม่มี เช่น สามารถเปิดปิดเลเยอร์ต่าง ๆ ได้ ในขณะที่ป้ายกำกับยังรับรู้ได้ว่ามีอะไรอยู่ข้างใต้ จึงคงความอ่านง่ายไว้ได้
    • จนถึงตอนนี้ดูเหมือนว่าโฟกัสจะอยู่ที่ซอฟต์แวร์สำหรับสร้าง vector tile ที่อัปเดตต่อเนื่อง มากกว่าการทำสไตล์ที่ใช้ประโยชน์จากไทล์เหล่านั้นให้สมบูรณ์
    • ผมทำ fork ของ OpenrailwayMap ไว้ ตัวต้นฉบับอยู่ที่ https://www.openrailwaymap.org และสไตล์เวกเตอร์อยู่ที่ https://openrailwaymap.fly.dev
      สไตล์ปรับให้ใกล้เคียงกับหน้าตาของ raster tile เดิม แต่เวอร์ชันเวกเตอร์เพิ่มฟีเจอร์โต้ตอบได้มากขึ้นมาก
      สิ่งที่น่าสนใจจากมุมมองการออกแบบสไตล์และไทล์คือ การแลกเปลี่ยนด้านประสิทธิภาพ จะแตกต่างไปโดยสิ้นเชิง ขึ้นอยู่กับว่าไทล์ถูกเรนเดอร์ที่ไหนและอย่างไร เรื่องนี้ก็ชัดเจนอยู่แล้ว แต่ยังส่งผลต่อสิ่งที่ทำได้ทางภาพบนฝั่งเซิร์ฟเวอร์และไคลเอนต์ด้วย
    • เห็นด้วยอย่างยิ่ง เวลาใช้หาทาง ผมใช้ OpenStreetMap กับ Google Maps ปนกัน แม้อยากใช้แต่ OSM อย่างเดียว แต่จำนวนสถานที่ที่ลงทะเบียนไว้ยังไม่มากเท่า Google Maps
      ถึงอย่างนั้น แผนที่ OSM ใช้งานดีกว่ามากเพราะแสดง จุดสนใจ จำนวนมาก แค่ดูแผนที่ก็ได้ความรู้สึกของสถานที่จริง สวนสาธารณะก็ดูเป็นสวน โรงพยาบาลก็ดูเป็นโรงพยาบาล
      Google Maps อาจดูดีกว่าในมุมมองของกราฟิกดีไซเนอร์ แต่ถ้าจะจับทิศทาง ปกติต้องเทียบรูปทรงของถนนและทางแยก ใน Google Maps ทุกที่ดูคล้ายกันไปหมด
    • คิดเหมือนกันเป๊ะ สไตล์พื้นฐานของ openstreetmap.org สำหรับผมเกือบจะเป็น ความสุขล้วน ๆ เลย และผมพยายามอยู่นานมากที่จะทำแผนที่เวกเตอร์ให้ได้ระดับนั้น แต่ก็ยังไม่เจอผลลัพธ์ที่ใช้ได้
      แค่ลองเล่น 2 นาทีก็เห็นทันทีว่ารายละเอียดหายไป น่าเสียดายจริง ๆ แต่ก็ยังมองในแง่ดีว่าสักวันจะมีคนแก้ได้
  • การได้เห็นชุมชนโอเพนซอร์สสร้างความสามารถด้าน vector map tile ขึ้นมาเป็นเรื่องน่าสนใจมาก ตอนทำงานเว็บ GIS ราวปี 2018 แผนที่เวกเตอร์แบบสตรีมมิงของ Google/Apple ดูเหมือนเวทมนตร์ และถ้ารับค่าใช้จ่ายไหวก็อยากใช้มาก
    ไม่นานหลังจากนั้น เทคโนโลยีหลักก็ออกมาเป็นโอเพนซอร์ส แถมยังมีโซลูชันโฮสติ้งฟรีด้วย ตอนนี้สามารถใช้เลเยอร์เวกเตอร์คุณภาพเยี่ยมบนแผนที่ Leaflet ได้ฟรีแล้ว ขอบคุณโอเพนซอร์ส

    • ค่อนข้างแปลกใจเล็กน้อยที่ OSM ใช้เวลานานขนาดนี้กว่าจะมาถึงจุดนี้ องค์ประกอบเทคโนโลยีพื้นฐานมีอยู่แล้วตั้งแต่กว่า 10 ปีก่อน
      ไม่ได้ตั้งใจจะบ่นบริการแผนที่ฟรีนะ บริการนี้ยอดเยี่ยม และเข้าใจว่าพวกเขาให้ความสำคัญกับการแก้ไขและความเป็นเจ้าของข้อมูลมากกว่า โครงสร้างพื้นฐานสำหรับให้บริการนั้นยากและแพง
      เพียงแต่สงสัยว่าในช่วงหลายปีที่ผ่านมา อิทธิพลครอบงำของ MapBox ขัดขวางความพยายามอื่น ๆ ไปมากแค่ไหน
  • สงสัยว่าต้นทุนการดำเนินงานจะลดลงหรือไม่เมื่อโฮสต์แผนที่ที่อิง OSM เพราะน่าจะต้องใช้ CPU สำหรับเรนเดอร์น้อยลง และเวกเตอร์ก็น่าจะใช้พื้นที่เก็บข้อมูลกับแบนด์วิดท์น้อยลงด้วย

    • ทั้งใช่และไม่ใช่
      เหตุผลที่ไม่ใช่คือเลเยอร์ไทล์ OSM อย่างเป็นทางการได้รับการสนับสนุนจำนวนมากจาก Fastly ครั้งสุดท้ายที่ตรวจสอบคือ Fastly €720k ส่วนการเรนเดอร์บน AWS อยู่ที่ €40k
      เหตุผลที่ใช่คือในเชิงเทคนิคมันใช้ทรัพยากรน้อยลง จึงเป็นภาระต่อ AWS+Fastly น้อยลงด้วย และทำให้การโฮสต์เองง่ายขึ้น
      ในการประเมินความเสี่ยงที่เคยอ่านอย่างละเอียดก่อนหน้านี้ มีเขียนไว้ว่า OSM “หากสูญเสียการสนับสนุนจาก Fastly ก็มีแนวโน้มสูงที่จะตัดการเข้าถึงเลเยอร์ไทล์มาตรฐานจากบุคคลที่สามทั้งหมด และรันเพียงเซิร์ฟเวอร์ Varnish ไม่กี่เครื่องเท่านั้น”
      ตามที่เข้าใจ แรงจูงใจหลักของเวกเตอร์น่าจะใกล้เคียงกับการปรับปรุง i18n ให้ดีขึ้น เปิดให้ตัดสินใจเรื่องการเรนเดอร์ฝั่งไคลเอนต์ได้ และสร้างชุดเครื่องมือสมัยใหม่ที่จะก่อให้เกิดประโยชน์ต่อเนื่องหลายอย่าง มากกว่าการลดต้นทุน
      น่าจะมีข้อมูลที่ใหม่กว่านี้อีก และเอกสารที่เกี่ยวข้องอยู่ในข้อ 1 และ 2
      1. https://operations.osmfoundation.org/2024/01/25/owg_budget.o...
      2. https://osmfoundation.org/wiki/Finances
    • จะบอกว่าไม่ใช่ก็ได้ เพราะเวกเตอร์ไทล์สามารถโฮสต์เองหรือให้คนอื่นโฮสต์ให้ได้ด้วยความพยายามน้อยมากมานานแล้ว
      แต่ก็ใช่ในแง่ที่ว่าสามารถย้ายการประมวลผลบางส่วนไปที่ไคลเอนต์ และที่สำคัญกว่านั้นคือทำให้ไคลเอนต์เป็นผู้ตัดสินใจเรื่องสไตล์ได้หลายอย่าง แน่นอนว่าไม่ได้ทำได้ทั้งหมด
      เวกเตอร์ไทล์แบบสแตติกหรือที่ไม่ได้อัปเดตบ่อยสามารถสร้างจากข้อมูล OSM ได้ด้วยเครื่องมือหลายตัว ตอนนี้ตัวที่นิยมที่สุดคือ https://github.com/systemed/tilemaker และ https://github.com/onthegomap/planetiler
      สิ่งที่ใหม่จริง ๆ คือด้วยงานที่ Paul ทำให้ OSMF ทำให้เวกเตอร์ไทล์สามารถ อัปเดตได้ทันที คือภายในไม่กี่นาที สิ่งนี้สำคัญในฐานะกลไกฟีดแบ็กสำหรับผู้ร่วมแก้ไข OSM และยังเป็นเหตุผลหลักที่ OSMF รันบริการแรสเตอร์ไทล์อยู่ในปัจจุบันด้วย
      ตอนนี้ยังเปิดกว้างอยู่ว่าการใช้บริการเวกเตอร์ไทล์จะมีข้อจำกัดแบบใดบ้าง เช่นเดียวกับบริการแรสเตอร์ไทล์ มันไม่ได้มีเจตนาจะแข่งขันหรือแทนที่บริการของบุคคลที่สาม แต่บริการเวกเตอร์ไทล์ก็มีศักยภาพที่จะเป็นแบบนั้นได้
    • ใช่ครับ เวกเตอร์ไทล์ โฮสต์เองได้ง่ายกว่ามาก
      ตัวอย่างเช่น https://protomaps.com/, https://openmaptiles.org/, https://versatiles.org/
    • ผมเป็นคนทำ openfreemap.org ใช่แล้ว เวกเตอร์ไทล์โดยพื้นฐานคือการโฮสต์ ไฟล์สแตติก และเซิร์ฟเวอร์ไม่มีอะไรต้องทำนอกจากการเข้ารหัส HTTPS
      การบีบอัด gzip ก็เสร็จอยู่ในไทล์แล้วเช่นกัน
  • อีกปัญหาหนึ่งคือในเวอร์ชันเวกเตอร์ ฟอนต์ภาษาอาหรับ เรนเดอร์ไม่ถูกต้อง มันถูกเรนเดอร์จากซ้ายไปขวาแทนที่จะเป็นขวาไปซ้าย และตัวอักษรดูแยกจากกันแทนที่จะเชื่อมต่อกัน

    • แก่นของเวกเตอร์ไทล์คือการเรนเดอร์เกิดขึ้นในเครื่อง และนอกจากสคีมาไทล์แล้ว จะถูกควบคุมด้วย การตั้งค่าสไตล์ ที่เปลี่ยนได้
      ดังนั้นอาการที่เห็นว่าเพี้ยนจึงเป็นปัญหาของสไตล์หรือไลบรารีที่เรนเดอร์เนื้อหาในเครื่อง
    • ไม่รู้ว่าเรนเดอร์เวกเตอร์ไทล์ของ QGIS ทำงานอย่างไร แต่ถ้าเป็นหน้าเดโมบน GitHub ก็น่าจะเพิ่ม ปลั๊กอินข้อความ RTL ให้ MapLibre เพื่อให้จัดการข้อความที่เขียนจากขวาไปซ้ายได้ถูกต้องได้ง่าย: https://maplibre.org/maplibre-gl-js/docs/examples/mapbox-gl-...
  • สิ่งที่น่าดูด้วยกัน: OpenFreeMap — โฮสติ้งเวกเตอร์ไทล์ OpenStreetMap ฟรี
    https://openfreemap.org/

    • OpenFreeMap ไม่ได้ให้บริการต่อไปนี้: การค้นหาหรือจีโอโค้ดดิ้ง, การคำนวณเส้นทาง·การนำทาง·คำแนะนำเส้นทาง, การสร้างภาพสแตติก, โฮสติ้งแรสเตอร์ไทล์, โฮสติ้งภาพถ่ายดาวเทียม, การค้นหาความสูง, โฮสติ้งไทล์หรือชุดข้อมูลแบบกำหนดเอง
      https://github.com/hyperknot/openfreemap?tab=readme-ov-file#...
    • ว้าว ดูขัดเกลามาก
      สงสัยว่านี่ก็อิงจาก สแตกเทคโนโลยีเวกเตอร์ เดียวกันหรือเปล่า หรือเป็นการพัฒนาแยกต่างหากโดยสิ้นเชิง
  • ส่วนที่ว่า “ภาพจะคมชัดขึ้นมาก และจะสลับภาษาของป้ายกำกับได้ด้วย” คิดว่าน่าจะไม่ได้ดีอย่างที่คาด
    เมื่อเปลี่ยนภาษา ไม่มีอะไรรับประกันเลยว่า ขนาดป้ายกำกับ จะคงเดิม และขนาดป้ายกำกับก็มีปฏิสัมพันธ์กับการจัดวางแผนที่ รวมถึงกำหนดด้วยว่าจะโชว์อะไร
    ถ้าป้ายกำกับใหญ่ขึ้น อาจบังแผนที่มากเกินไปหรือซ้อนทับกันได้ ถ้าป้ายกำกับเล็กลง ผู้ใช้อาจสงสัยว่าทำไมเมืองที่ก่อนหน้านี้ถูกละไว้เพราะข้อจำกัดด้านพื้นที่ ถึงไม่ปรากฏขึ้นในพื้นที่ว่างที่เพิ่งเกิดขึ้น

    • ผมเกลียดมากที่ชื่อเมืองกับชื่อถนนหายไปตอนซูมเข้า·ซูมออกใน Google Maps ชื่อถนนหรือร้านค้าบางแห่งมองเห็นได้เฉพาะในระดับซูมหนึ่งเท่านั้น และพอซูมเข้าหรือออกอีกก็หายไป
      แค่แสดงชื่อถนนทั้งหมดก็พอ ถึงจะแน่นก็ไม่เป็นไร การยืนอยู่ตรงสี่แยกแล้วดูแผนที่ที่ไม่มีชื่ออะไรเลยเป็นแผนที่ที่ไม่มีประโยชน์
    • อย่างไรจุดตั้งต้นก็คือ การจัดวางป้ายกำกับอัตโนมัติ
      แรสเตอร์ไทล์ที่ใช้กันมาหลายปีก็เป็นแบบเดียวกัน
    • มีเหตุผลอะไรให้คาดว่าอัลกอริทึมการจัดวางจะเปลี่ยนไปมากหรือ?
  • เป็นการเปลี่ยนแปลงใหม่ที่น่ายินดีมาก หวังว่าจะได้เห็นแผนที่ที่ดูดีขึ้น
    แต่ส่วน “my workstation” ทำให้งงเล็กน้อย ดูไม่ค่อยเกี่ยวข้องกับส่วนที่เหลือของบทความ และงานที่กล่าวถึงต่อจากนั้นก็ดูเหมือนไม่ได้ต้องการสเปกระบบสูงเป็นพิเศษ

  • หากบอกว่า “ภาพจะคมชัดขึ้นมาก และจะสามารถสลับภาษาของป้ายกำกับได้ด้วย” นั่นหมายความว่า เช่น เวกเตอร์รูปร่างเมือง หรือให้เจาะจงคือรูปหลายเหลี่ยม จะต้องพก เมทาดาทาชื่อเมือง ในทุกภาษาที่มีการกำหนดไว้ไปด้วยหรือไม่?

    • เมืองใหญ่ ๆ มีชื่อหลายภาษาอยู่แล้ว ตัวอย่างเช่นดู Paris ได้: https://www.openstreetmap.org/relation/71525
      ความมีประโยชน์ของฟีเจอร์สลับภาษาย่อมขึ้นอยู่กับว่ามีคำแปลอยู่หรือไม่ และอาจช่วยกระตุ้นให้ผู้แก้ไขเพิ่มคำแปลชื่อสถานที่มากขึ้นได้
    • shortbread ซึ่งเป็นสคีมาของไทล์ที่ใช้ทดสอบอยู่ในตอนนี้ยังไม่รองรับหลายภาษา แต่เท่าที่รู้ เมื่อจัดการบั๊กเรียบร้อยแล้ว คนที่ทำงานนี้ตั้งใจจะรองรับ
      ตัวอย่างลักษณะนี้ดูได้ที่ https://americanamap.org ซึ่งใช้ข้อมูล OSM แต่ไม่ได้ตั้งเป้าให้เกือบเรียลไทม์เหมือนไทล์ในบทความนี้
    • ไม่ใช่ แต่สามารถดึงไทล์ที่มีเฉพาะข้อความที่ต้องใช้มาแพตช์ไทล์ที่มีอยู่แล้วได้
  • ถ้านี่หมายความว่า OSMAnd กับ OrganicMaps จะรวมพลังกันในที่สุดเพื่อปล่อย แอปแผนที่โอเพนซอร์สเสรี ขั้นสุดยอดก็คงดี

    • ทั้งสองแอปส่วนใหญ่ใช้ข้อมูลแผนที่สำหรับดาวน์โหลด·ออฟไลน์ที่ผ่านการประมวลผลล่วงหน้าในรูปแบบของตัวเอง
      เวกเตอร์ไทล์รูปแบบ MVT ไม่เหมาะกับการนำทางหรือการค้นหาเลย ไม่ได้หมายความว่าจะฝืนประกอบให้ใช้งานไม่ได้ แต่ถือว่าค่อนข้างฝืนมาก
    • ไม่มีแอปแผนที่ขั้นสุดยอดเพียงหนึ่งเดียวได้ เพราะกรณีใช้งานต่างกัน
      ตัวอย่างเช่น OSMAnd มีฟีเจอร์สำหรับผู้ใช้ระดับสูงจำนวนมากที่มีประโยชน์มากสำหรับผู้ที่มีส่วนร่วมกับ OSM แต่ในแอปสำหรับผู้ใช้ทั่วไป ฟีเจอร์เหล่านี้อาจแค่ทำให้อินเทอร์เฟซรกเท่านั้น
    • อย่างน้อยก็หวังว่าทั้งสองจะ แชร์ไทล์แผนที่ กันได้ จะได้ไม่ต้องใช้พื้นที่ซ้ำกันเป็นกิกะไบต์กับแผนที่เดียวกัน
  • https://marble.kde.org/ มีการทำ เลเยอร์ OSM แบบเวกเตอร์ สำหรับสตรีมมิงของตัวเองมาตั้งแต่ 9 ปีก่อนแล้ว และรอคอยมานานพอสมควรให้สิ่งคล้ายกันปรากฏในแอปแผนที่ OSM อื่น ๆ
    ในแอป OSM บน Android การดาวน์โหลดแผนที่ขนาดหลายร้อยเมกะไบต์เป็นก้อนใหญ่ระดับทั้งประเทศเป็นปัญหาเรื่องพื้นที่เก็บข้อมูลอยู่เสมอ ดีใจมากที่ในที่สุดมาตรฐานก็เริ่มเป็นรูปเป็นร่าง และหวังว่าจะมีหลายแอปนำไปใช้และปรับปรุงต่อไป งานยอดเยี่ยมมาก

    • ลองหาแอป Marble บน Android แล้ว แต่ไม่มีทั้งใน Play Store และ F-Droid ลิงก์ Play Store บนเว็บไซต์ก็เป็น 404 เลิกทำไปแล้วหรือ?