พิกัดแผนที่และแผนที่ย่อย

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
เลือกแพลตฟอร์ม: Android iOS JavaScript

Maps JavaScript API ใช้ระบบพิกัดต่อไปนี้

  • ค่าละติจูดและลองจิจูดซึ่งอ้างอิงจุดในโลกที่ไม่ซ้ํากัน (Google ใช้มาตรฐาน World Geodetic System WGS84)
  • พิกัดโลกซึ่งอ้างอิงจุดบนแผนที่ที่ไม่ซ้ํากัน
  • พิกัดพิกเซลซึ่งอ้างอิงพิกเซลที่เฉพาะเจาะจงบนแผนที่ในระดับการซูมที่เจาะจง
  • พิกัดไทล์ที่อ้างอิงถึงการ์ดที่เฉพาะเจาะจงในแผนที่ในระดับการซูมที่เจาะจง

พิกัดทั่วโลก

เมื่อใดก็ตามที่ API ต้องแปลตําแหน่งในโลกเป็นตําแหน่งบนแผนที่ ก็จะแปลค่าละติจูดและลองจิจูดเป็นพิกัดโลกก่อน API ใช้การคาดการณ์ Merceror เพื่อทําการแปลนี้

เพื่อความสะดวกในการคํานวณพิกัดพิกเซล (ดูด้านล่าง) เราจะถือว่าแผนที่ที่ระดับการซูม 0 เป็นไทล์เดียวของขนาดไทล์ฐาน จากนั้นจะกําหนดพิกัดโลกที่สัมพันธ์กับพิกัดพิกเซลที่ระดับ 0 โดยใช้การฉายภาพเพื่อแปลงละติจูดและลองจิจูดเป็นตําแหน่งพิกเซลในไทล์ฐานนี้ พิกัดโลกนี้คือค่าแบบลอยที่วัดจากต้นทางของการคาดการณ์แผนที่ไปยังตําแหน่งที่เจาะจง โปรดทราบว่าเนื่องจากค่านี้เป็นค่าลอยตัว จึงอาจมีความแม่นยํามากกว่าความละเอียดปัจจุบันของรูปภาพแผนที่ที่แสดง พิกัดโลกแตกต่างจากระดับการซูมปัจจุบัน กล่าวคือ

พิกัดของโลกใน Google Maps จะวัดจากต้นทางของการคาดการณ์ Mercator (ที่มุมทิศตะวันตกเฉียงเหนือของแผนที่ที่ลองจิจูด 180 องศาและละติจูดประมาณ 85 องศา) และเพิ่มขึ้นในทิศทาง x ไปยังทิศตะวันออก (ขวา) และเพิ่มขึ้นในทิศทาง y ไปยังทิศใต้ (ลง) เนื่องจากการ์ด Google Maps พื้นฐานแบบขนาด 256 x 256 พิกเซล พื้นที่พิกัดที่ใช้ได้ทั่วโลกคือ {0-256}, {0-256}

โปรดทราบว่าการฉายภาพของ Mercator มีความกว้างที่ไม่สิ้นสุดตามความสูง แต่ความสูงที่ไม่สิ้นสุด เราตัดภาพแผนที่ฐานที่ใช้การฉายภาพ Mercator ที่ประมาณ +/- 85 องศาเพื่อทําให้รูปร่างแผนที่ที่ได้เป็นสี่เหลี่ยมจัตุรัส เพื่อให้เห็นภาพได้ง่ายขึ้นสําหรับการเลือกชิ้นส่วนแผนที่ โปรดทราบว่าการคาดคะเนอาจสร้างพิกัดโลกนอกพื้นที่พิกัดที่นําไปใช้ได้ของแผนที่ฐาน หากพล็อตวัตถุไว้ใกล้กับขั้วโลกอย่างมาก

พิกัดของ Pixel

พิกัดพิกเซลจะอ้างอิงพิกเซลที่เจาะจงในแผนที่ในระดับการซูมที่เจาะจง ส่วนพิกัดของโลกจะแสดงตําแหน่งที่แน่นอนในการคาดการณ์ พิกัดของพิกเซลจะคํานวณโดยใช้สูตรต่อไปนี้

pixelCoordinate = worldCoordinate * 2zoomLevel

จากสมการข้างต้น โปรดทราบว่าระดับการซูมแต่ละระดับจะเพิ่มขึ้นมากเป็น 2 เท่าทั้งในเส้นทาง x และ y ดังนั้น ระดับการซูมที่สูงขึ้นแต่ละระดับจะทําให้ความละเอียดสูงกว่าระดับก่อนหน้า 4 เท่า เช่น ที่ระดับการซูม 1 แผนที่จะประกอบไปด้วยชิ้นส่วนขนาด 256x256 พิกเซล 4 ชิ้น ทําให้มีพื้นที่พิกเซลตั้งแต่ 512x512 ที่ระดับการซูม 19 คุณจะอ้างอิงแต่ละ x และ y พิกเซลบนแผนที่ได้โดยใช้ค่าระหว่าง 0 ถึง 256 * 219

เนื่องจากเราอิงตามพิกัดโลกเกี่ยวกับขนาดชิ้นส่วนแผนที่ ส่วนจํานวนเต็มของพิกัดพิกเซลมีผลกระทบในการระบุพิกเซลที่แน่นอนในตําแหน่งนั้นในระดับการซูมปัจจุบัน โปรดทราบว่าสําหรับระดับการซูม 0 พิกัดพิกเซลจะเท่ากับพิกัดโลก

ในตอนนี้เรามีวิธีแสดงสถานที่แต่ละแห่งบนแผนที่อย่างถูกต้องในระดับการซูมแต่ละระดับ Maps JavaScript API จะสร้างวิวพอร์ตตามกึ่งกลางของระดับการซูมของแผนที่ (เป็น LatLng) และขนาดขององค์ประกอบ DOM ที่มี และแปลกรอบขอบเขตนี้เป็นพิกัดพิกเซล จากนั้น API จะกําหนดชิ้นส่วนแผนที่ทั้งหมดอย่างสมเหตุสมผลซึ่งอยู่ภายในขอบเขตพิกเซลที่ระบุ ไทล์แผนที่แต่ละรายการเหล่านี้อ้างอิงโดยใช้พิกัดไทล์ซึ่งช่วยให้การแสดงภาพแผนที่ง่ายขึ้นมาก

พิกัดไทล์

API โหลดภาพแผนที่ทั้งหมดพร้อมกันสําหรับระดับการซูมที่สูงขึ้นไม่ได้ แต่ API จะแยกภาพในแต่ละระดับการซูมออกเป็นชุดแผนที่ย่อย ซึ่งจัดเรียงอย่างสมเหตุสมผลตามลําดับที่แอปพลิเคชันเข้าใจ เมื่อแผนที่เลื่อนไปที่ตําแหน่งใหม่หรือระดับการซูมใหม่ API จะกําหนดว่าควรใช้ไทล์ใดโดยใช้พิกัดพิกเซล และแปลค่าเหล่านั้นเป็นชุดการ์ดเพื่อเรียก พิกัดไทล์เหล่านี้จะได้รับการกําหนดโดยใช้รูปแบบ ซึ่งทําให้ง่ายต่อการใช้ตรรกะของการ์ดที่มีภาพของจุดที่ระบุ

ไทล์ใน Google Maps จะเรียงลําดับเลขจากต้นทางเดียวกับพิกเซล สําหรับการนํา Google มาใช้ในการคาดการณ์ Mercator ชิ้นส่วนต้นทางจะอยู่ที่มุมทิศเหนือของแผนที่เสมอ โดยค่า x จะเพิ่มขึ้นจากทิศตะวันตกไปยังทิศตะวันออก และค่า y เพิ่มขึ้นจากทิศเหนือไปยังทิศใต้ ระบบจะจัดทําดัชนีการ์ดโดยใช้พิกัด x,y จากต้นทางนั้น ตัวอย่างเช่น ที่ระดับการซูม 2 เมื่อ Earth แบ่งออกเป็น 16 ชิ้นส่วน แต่ละชิ้นส่วนสามารถอ้างอิงด้วยคู่ x,y ที่ไม่ซ้ํากัน

แผนที่โลกแบ่งออกเป็น 4 แถวและ 4 คอลัมน์ไทล์

โปรดทราบว่าการหารพิกัดพิกเซลด้วยขนาดไทล์ (256) และนําส่วนที่เป็นจํานวนเต็มของผลลัพธ์ไปสร้างเป็นพิกัดพิกัดผลิตภัณฑ์ในระดับการซูมปัจจุบัน

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงพิกัดสําหรับชิคาโก รัฐอิลลินอยส์: ค่าละติจูด/ลองจิจูด พิกัดโลก พิกัดพิกเซล และพิกัดไทล์ ใช้การควบคุมการซูมเพื่อดูค่าพิกัดในระดับการซูมต่างๆ

หากต้องการดูวิธีคํานวณพิกัด ให้ดูโค้ด