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

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Chọn nền tảng: Android iOS JavaScript

SDK Maps dành cho Android sử dụng các hệ toạ độ sau:

  • Vĩ độ và kinh độ, tham chiếu đến một điểm duy nhất trên thế giới. (Google sử dụng tiêu chuẩn Hệ thống trắc địa thế giới WGS84.)
  • Tọa độ thế giới, chỉ tham chiếu một điểm trên bản đồ.
  • 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ể.

Tọa độ 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 này sẽ dịch giá trị vĩ độ và kinh độ thành một toạ độ thế giới. 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 các toạ độ pixel ở mức thu phóng 0, bằng cách sử dụng phép chiếu để chuyển đổi vĩ độ và kinh độ thành vị trí pixel trên ô cơ sở này. Tọa độ 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 tới vị trí cụ thể. Xin lưu ý rằng vì giá trị này là 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 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 tọa độ thế giới trong Google Maps được đo từ nguồn gốc của phép chiếu Mercator (góc phía tây bắc của bản đồ ở kinh độ 180 độ và vĩ độ khoảng 85 độ) và tăng theo hướng x về phía đông (bên phải) và tăng lên theo hướng y về phía Nam (xuống dưới). Vì ô Google Maps cơ bản RTBr có kích thước 256 x 256 pixel, nên không gian tọa độ thế giới có thể sử dụng là {0-256}, {0-256}.

Lưu ý rằng một phép chiếu Mercator có chiều rộng 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 Mercator ở khoảng +/- 85 độ để tạo thành hình vuông bản đồ kết quả, cho phép logic lựa chọn thẻ thông tin trở nên dễ dàng hơn. Hãy 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ạ độ có thể sử dụng của bản đồ cơ sở, chẳng hạn như nếu bạn vẽ biểu đồ cực gần các cực.

Tọa độ trên Pixel

Tọa độ 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 toạ độ thế giới phản ánh các vị trí tuyệt đối trên một phép chiếu. Các tọa độ Pixel được tính theo công thức sau:

pixelCoordinate = worldCoordinate * 2zoomLevel

Từ 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 đôi theo cả hai hướng xy. Do đó, mỗi mức thu phóng cao hơn sẽ 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 không gian pixel từ 512x512. Ở cấp độ thu phóng 19, mỗi pixel xy pixel trên bản đồ có thể được tham chiếu bằng giá trị từ 0 đến 256 * 219.

Do chúng ta dựa trên toạ độ thế giới dựa trên kích thước ô bản đồ, phần tử số nguyên của toạ độ pixel có tác dụng xác định chính xác pixel tại vị trí đó ở mức thu phóng hiện tại. Hãy lưu ý rằng đối với cấp độ thu phóng 0, toạ độ pixel bằng với tọa độ thế giới.

Hiện tại, chúng tôi có một cách để biểu thị chính xác từng vị trí trên bản đồ, ở mỗi mức thu phóng. SDK Maps dành cho Android 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, sau đó dịch hộp giới hạn này sang toạ độ pixel. Sau đó, API xác định logic của tất cả các ô bản đồ nằm trong giới hạn pixel đã cho. Mỗi ô bản đồ trong số này được tham chiếu bằng cách sử dụng tọa độ ô để đơn giản hóa đáng kể việc hiển thị hình ảnh bản đồ.

Tọa độ xếp kề

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 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 sử dụng toạ độ pixel và dịch những giá trị đó thành một tập hợp các ô để truy xuất. Những toạ độ ô này được gán bằng một lược đồ giúp dễ dàng xác định logic nào có 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 pixel. Đối với cách triển khai phép chiếu Mercator của Google, ô 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à giá trị y tăng từ bắc xuống nam. Thẻ thông tin được lập chỉ mục bằng cách sử dụng toạ độ x,y của nguồn gốc đó. Ví dụ: Ở mức 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:

Hãy 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 tạo ra toạ độ ô theo sản phẩm phụ ở mức thu phóng hiện tại.

Ví dụ:

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

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