SDK Bản đồ dành cho iOS sử dụng các hệ toạ độ sau:
- Giá trị 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.
- Toạ độ thế giới, tham chiếu đến một điểm duy nhất trên bản đồ.
- 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ạ độ ô vuông, 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 toạ độ thế giới. API này 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 bản đồ ở mức thu phóng 0 là một ô duy nhất có kích thước ô cơ sở. Sau đó, chúng ta 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ừ gốc của phép chiếu bản đồ đến vị trí cụ thể. Xin lưu ý rằng vì giá trị này là giá trị dấu phẩy động, nên giá trị này 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ị. Nói cách khác, toạ độ thế giới không phụ thuộc vào mức thu phóng hiện tại.
Toạ độ thế giới trong Google Maps được đo từ gốc của phép chiếu Mercator (góc tây bắc của bản đồ ở kinh độ 180 độ và vĩ độ xấp xỉ 85 độ) và tăng theo hướng x về phía đông (bên phải) và tăng theo hướng y về phía nam (xuống dưới). Vì ô cơ bản của bản đồ Mercator trên Google Maps là 256 x 256 pixel, nên không gian toạ độ thế giới có thể sử dụng là {0-256}, {0-256}.
![]()
Xin lưu ý rằng phép chiếu Mercator có chiều rộng hữu hạn theo kinh độ nhưng có chiều cao vô hạn theo vĩ độ. Chúng tôi cắt bỏ hình ảnh bản đồ cơ sở sử dụng phép chiếu Mercator ở khoảng +/- 85 độ để tạo hình vuông cho bản đồ thu được, giúp logic lựa chọn ô trở nên dễ dàng hơn. Xin lưu ý rằng phép chiếu có thể tạo ra toạ độ thế giới nằm ngoài không gian toạ độ có thể sử dụng của bản đồ cơ sở nếu bạn vẽ rất gần các cực, chẳng hạn.
Toạ độ pixel
Toạ độ điểm ảnh tham chiếu đến một điểm ảnh cụ thể trên bản đồ ở một mức thu phóng cụ thể, trong khi toạ độ thế giới phản ánh vị trí tuyệt đối trên một phép chiếu nhất định. Toạ độ pixel được tính bằng 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 lên sẽ lớn gấp đôi theo cả hướng x và y. Do đó, mỗi mức thu phóng cao hơn sẽ có độ phân giải cao gấp 4 lần so với mức trước đó. Ví dụ: ở mức thu phóng 1, bản đồ bao gồm 4 ô có kích thước 256x256 pixel, dẫn đến không gian pixel là 512x512. Ở mức thu phóng 19, mỗi pixel x và y trên bản đồ có thể được tham chiếu bằng một giá trị từ 0 đến 256 * 219.
Vì chúng tôi dựa vào toạ độ thế giới trên kích thước ô của bản đồ, nên phần 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. Xin lưu ý rằng đối với mức thu phóng 0, toạ độ pixel bằng với toạ độ thế giới.
Các hệ toạ độ này biểu thị chính xác từng vị trí trên bản đồ, ở mỗi mức thu phóng. SDK bản đồ dành cho iOS tạo một khung nhìn dựa trên mức thu phóng, tâm của bản đồ dưới dạng LatLng và kích thước của phần tử DOM chứa bản đồ, sau đó chuyển hộp giới hạn này thành toạ độ pixel. Sau đó, API sẽ xác định một cách hợp lý tất cả các ô bản đồ nằm trong ranh giới pixel đã cho. Bạn tham chiếu từng ô bản đồ này bằng cách sử dụng toạ độ ô vuông, giúp đơn giản hoá đáng kể việc hiển thị hình ảnh bản đồ.
Toạ độ ô vuông
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 này chia hình ảnh ở mỗi mức thu phóng thành một tập hợp các ô bản đồ, được sắp xếp một cách hợp lý theo thứ tự mà ứng dụng của bạn có thể sử dụng. Khi bản đồ di chuyển đến một vị trí mới hoặc 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, sau đó chuyển các giá trị đó thành một tập hợp ô cần truy xuất. Google Maps chỉ định các toạ độ ô này bằng một lược đồ giúp dễ dàng xác định ô nào chứa hình ảnh cho bất kỳ điểm cụ thể nào.
Các ô trong Google Maps được đánh số từ cùng một gốc như đối với pixel. Đối với cách triển khai phép chiếu Mercator của Google, ô gốc luôn nằm ở góc tây bắc của bản đồ, với giá trị x tăng từ tây sang đông và giá trị y tăng từ bắc xuống nam. Các ô được lập chỉ mục bằng toạ độ x,y từ 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:

Lưu ý rằng bằng cách chia toạ độ pixel cho kích thước ô (256) và lấy phần nguyên của kết quả, bạn sẽ tạo ra toạ độ ô ở mức thu phóng hiện tại dưới dạng sản phẩm phụ.
Ví dụ
Ví dụ sau đây cho thấy toạ độ của Chicago, IL: giá trị vĩ độ/kinh độ, toạ độ thế giới, toạ độ pixel và toạ độ ô vuông. Sử dụng chế độ điều khiển thu phóng để xem các giá trị toạ độ ở nhiều mức thu phóng.
Để xem cách tính toạ độ, hãy xem mã.