Tọa độ bản đồ và ô

Chọn nền tảng: Android iOS JavaScript

API Maps JavaScript sử dụng các hệ thống toạ độ sau:

  • Vĩ độ và kinh độ, tham chiếu đến một điểm trên thế giới. (Google sử dụng tiêu chuẩn Hệ thống trắc địa thế giới WGS84.)
  • Toạ độ thế giới, chỉ một điểm trên bản đồ duy nhất.
  • Các toạ độ pixel tham chiếu đến một pixel cụ thể trên bản đồ ở một mức thu phóng cụ thể.
  • Toạ độ ô, tham chiếu đến một ô cụ thể trên bản đồ ở một mức thu phóng cụ thể.

Toạ độ thế giới

Bất cứ khi nào API cần dịch một vị trí trên thế giới sang một vị trí trên bản đồ, trước tiên, API đó sẽ dịch các giá trị vĩ độ và kinh độ thành một toạ độ world. API sử dụng Phép chiếu Mercator để thực hiện việc dịch này.

Để thuận tiện cho việc tính toán toạ độ pixel (xem bên dưới), chúng tôi giả định một bản đồ ở mức thu phóng 0 là một ô duy nhất có kích thước ô cơ sở. Sau đó, chúng tôi xác định toạ độ thế giới tương ứng với toạ độ pixel ở mức thu phóng 0, sử dụng phép chiếu để chuyển đổi vĩ độ và kinh độ thành vị trí pixel trên ô cơ sở này. Toạ độ thế giới này là một giá trị dấu phẩy động được đo từ nguồn gốc của phép chiếu bản đồ đến vị trí cụ thể. Hãy lưu ý rằng vì giá trị này là một giá trị dấu phẩy động nên có thể chính xác hơn nhiều so với độ phân giải hiện tại của hình ảnh bản đồ đang được hiển thị. Toạ độ thế giới độc lập với mức thu phóng hiện tại, nói cách khác.

Các toạ độ thế giới trong Google Maps được đo từ điểm bắt nguồn của phép chiếu ValueTrack (góc tây bắc của bản đồ ở 180 độ kinh độ và khoảng 85 độ vĩ độ) và tăng theo hướng x về phía đông (phải) và tăng theo hướng y về phía nam (xuống). Vì ô Google Maps TCF phiên bản cơ bản là 256 x 256 pixel, nên không gian toạ độ thế giới có thể sử dụng là {0-256}, {0-256}.

Lưu ý rằng phép chiếu ValueTrack có chiều ngang hữu hạn theo chiều dọc nhưng có chiều cao vô hạn. Chúng tôi cắt bỏ hình ảnh bản đồ cơ sở bằng cách sử dụng phép chiếu ValueTrackr ở khoảng +/- 85 độ để tạo ra hình vuông bản đồ kết quả, cho phép logic lựa chọn ô dễ dàng hơn. Lưu ý rằng một phép chiếu có thể tạo ra các toạ độ thế giới bên ngoài không gian toạ độ hữu dụng của bản đồ cơ sở, chẳng hạn nếu bạn lập biểu đồ rất gần các cực.

Toạ độ pixel

Toạ độ pixel tham chiếu đến một pixel cụ thể trên bản đồ ở một mức thu phóng cụ thể, trong khi các toạ độ thế giới phản ánh các vị trí tuyệt đối trong một phép chiếu. Các toạ độ pixel được tính toán bằng công thức sau:

pixelCoordinate = worldCoordinate * 2zoomLevel

Trong phương trình trên, hãy lưu ý rằng mỗi mức thu phóng tăng dần gấp hai lần theo cả hai hướng xy. Do đó, mỗi mức thu phóng cao hơn dẫn đến độ phân giải cao hơn gấp 4 lần so với mức trước đó. Ví dụ: ở cấp thu phóng 1, bản đồ bao gồm 4 ô 256x256 pixel, dẫn đến một không gian pixel từ 512x512. Ở cấp thu phóng 19, mỗi xy pixel trên bản đồ có thể được tham chiếu bằng cách sử dụng một giá trị nằm trong khoảng từ 0 đến 256 * 219.

Vì toạ độ thế giới dựa trên kích thước ô của bản đồ, nên phần tử toạ độ pixel có tác dụng xác định pixel chính xác tại vị trí đó trong mức thu phóng hiện tại. Lưu ý rằng đối với cấp độ thu phóng 0, toạ độ pixel bằng với toạ độ thế giới.

Hiện tại, chúng tôi có cách để biểu thị chính xác từng vị trí trên bản đồ, tại mỗi mức thu phóng. API JavaScript của Maps xây dựng một khung nhìn dựa trên trung tâm mức thu phóng của bản đồ (dưới dạng LatLng) và kích thước của phần tử DOM chứa, và dịch hộp giới hạn này thành các toạ độ pixel. Sau đó, API sẽ xác định logic tất cả các ô bản đồ nằm trong giới hạn pixel nhất định. Mỗi ô bản đồ này được tham chiếu bằng các toạ độ ô giúp đơn giản hóa việc hiển thị hình ảnh bản đồ.

Toạ độ ô

API không thể tải tất cả hình ảnh bản đồ cùng một lúc cho các mức thu phóng cao hơn. Thay vào đó, API sẽ chia hình ảnh ở mỗi cấp thu phóng thành một tập hợp các ô bản đồ, được sắp xếp hợp lý theo thứ tự mà ứng dụng hiểu được. Khi một bản đồ cuộn đến một vị trí mới hoặc đến một mức thu phóng mới, API sẽ xác định những ô cần thiết bằng cách sử dụng toạ độ pixel và dịch các giá trị đó thành một tập hợp các ô để truy xuất. Những toạ độ ô này được chỉ định bằng một lược đồ giúp dễ dàng xác định ô nào chứa hình ảnh cho một điểm bất kỳ.

Các ô trong Google Maps được đánh số từ cùng một nguồn gốc với các pixel. Để Google triển khai phép chiếu Lookout, ô gốc luôn ở góc tây bắc của bản đồ, với các giá trị x tăng từ tây sang đông và y giá trị tăng từ bắc lên nam. Thẻ thông tin được lập chỉ mục bằng cách sử dụng toạ độ x,y từ nguồn gốc đó. Ví dụ: ở cấp thu phóng 2, khi trái đất được chia thành 16 ô, mỗi ô có thể được tham chiếu bằng một cặp x,y duy nhất:

Bản đồ thế giới chia thành bốn hàng và bốn cột ô.

Lưu ý rằng bằng cách chia toạ độ pixel cho kích thước ô (256) và lấy các phần nguyên của kết quả, bạn sẽ tạo ra một toạ độ ô theo sản phẩm thứ cấp ở mức thu phóng hiện tại.

Ví dụ:

Ví dụ sau đây hiển thị các toạ độ cho Chicago, IL: giá trị vĩ độ/kinh độ, toạ độ thế giới, toạ độ pixel và toạ độ ô. Sử dụng điều khiển thu phóng để xem các giá trị toạ độ ở nhiều mức thu phóng khác nhau.

Để tìm hiểu cách tính toán toạ độ, hãy xem mã.