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

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

SDK bản đồ dành cho iOS sử dụng các hệ toạ độ sau:

  • Các giá trị vĩ độ và kinh độ tham chiếu đến một điểm trên thế giới duy nhất. (Google sử dụng tiêu chuẩn Hệ thống đo lường 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ạ độ ô (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ạ độ 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 bản đồ ở mức thu phóng 0 là một ô duy nhất của 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 độ sang vị trí pixel trên thẻ thông tin cơ sở này. Toạ độ thế giới này là một giá trị dấu phẩy động được đo từ điểm 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à một 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 được hiển thị. Nói cách khác, toạ độ thế giới độc lập với mức thu phóng hiện tại.

Toạ độ thế giới trong Google Maps được đo từ điểm gốc của phép chiếu {/6} (góc Tây Bắc của bản đồ với kinh độ 180 độ và vĩ độ khoảng 85 độ) và tăng dần theo hướng x về hướng đông (phải) và tăng dần theo hướng y về hướng nam (xuống). Vì thẻ thông tin cơ bản của hệ thống cho phép bạn trên Google Maps có kích thước 256 x 256 pixel, nên không gian toạ độ thế giới có thể sử dụng là {0-256}, {0-256}.

Hãy lưu ý rằng phép chiếu Figma có chiều rộng hữu hạn theo chiều dọc nhưng chiều cao vô hạn theo vĩ độ. 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 im lặng ở khoảng +/- 85 độ để tạo thành hình vuông của hình dạng bản đồ, cho phép chọn thẻ thông tin dễ dàng hơn. Lưu ý rằng một phép chiếu có thể tạo ra 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 đồ rất gần các cực.

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

pixelCoordinate = worldCoordinate * 2zoomLevel

Từ phương trình trên, xin lưu ý rằng mỗi mức thu phóng tăng lên sẽ lớn gấp đôi ở 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 4 lần so với mức trước đó. Ví dụ: ở mức thu phóng 1, bản đồ sẽ bao gồm 4 ô có kích thước 256 x 256 pixel, tạo ra không gian pixel là 512 x 512. Ở mức thu phóng 19, mỗi pixel xy trên bản đồ có thể được tham chiếu bằng cách sử dụng một giá trị trong khoảng từ 0 đến 256 * 219.

Vì chúng tôi dựa vào toạ độ thế giới dựa 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 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 mức thu phóng 0, toạ độ pixel bằng toạ độ của thế giới.

Giờ đây, chúng ta đã có cách để biểu thị chính xác từng vị trí trên bản đồ, ở từng 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 trung tâm của bản đồ (dưới dạng LatLng) và kích thước của phần tử DOM chứa, đồng thời chuyển hộp giới hạn này thành toạ độ pixel. Sau đó, API sẽ xác định theo logic tất 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ạ độ ô bản đồ giúp đơn giản hoá đáng kể 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 đối với các mức thu phóng cao hơn. Thay vào đó, API sẽ chia nhỏ hình ảnh ở mỗi mức thu phóng thành một tập hợp các ô bản đồ. Các ô này được sắp xếp theo thứ tự mà ứng dụng hiểu được. Khi 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 thẻ thông tin cần thiết bằng cách sử dụng toạ độ pixel và chuyển các giá trị đó vào một tập hợp các thẻ thông tin để truy xuất. Các toạ độ thẻ thông tin này được gán bằng một lược đồ giúp bạn dễ dàng xác định thẻ thông tin nào chứa hình ảnh cho bất cứ điểm nhất định nào.

Các thẻ thông tin trong Google Maps được đánh số trên cùng một nguồn gốc với điểm ảnh. Để triển khai phép chiếu lãi suất tối đa của Google, thẻ thông tin 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. Thẻ thông tin được lập chỉ mục bằng toạ độ x,y từ nguồn gốc đó. Ví dụ: ở mức thu phóng 2, khi trái đất được chia thành 16 thẻ thông tin, mỗi thẻ thông tin có thể được tham chiếu bằng một cặp x,y riêng biệt:

Bản đồ thế giới được 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 thẻ thông tin (256) và lấy các phần số nguyên của kết quả, bạn sẽ tạo ra toạ độ thẻ thông tin dưới dạng 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ạ độ trên thế giới, toạ độ pixel và toạ độ của thẻ thông tin. Sử dụng chức năng điều khiển thu phóng để xem các giá trị toạ độ ở nhiều mức thu phóng khác nhau.

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