Video: Quên Jailbreak đi khi đã có kho ứng dụng Crack cho iPhone 2025
Việc chuyển đổi địa chỉ thành một bộ tọa độ bản đồ trong ứng dụng iOS của bạn được gọi là chuyển mã hóa địa lý, trong khi chuyển đổi từ một tập hợp các tọa độ sang một địa chỉ là gọi là mã hóa địa lý ngược lại . Cả hai mã hóa địa lý về phía trước và ngược lại được hỗ trợ trong lớp CLGeocoder của Apple - là một phần của khung CoreLocation của Apple.
Lớp CLGeocoder cung cấp các dịch vụ để chuyển đổi giữa một tọa độ (được xác định là vĩ độ và kinh độ) và địa chỉ của tọa độ đó. Lớp CoreLocation cũng cung cấp các dịch vụ cho việc đảo ngược: trả lại giá trị tọa độ cho một chuỗi văn bản là đại diện thân thiện với người sử dụng phối hợp đó.
Để sử dụng một đối tượng CoreLocation, trước hết hãy tạo ra nó và gửi cho nó một thông điệp mã hóa địa lý chuyển tiếp hoặc ngược lại.
-
Đảo ngược mã hóa địa lý: Những yêu cầu này lấy giá trị vĩ độ và kinh tuyến và tìm địa chỉ người dùng có thể đọc được.
-
Chuyển tiếp mã hóa địa lý: Những yêu cầu này lấy địa chỉ người dùng có thể đọc được và tìm giá trị vĩ độ và kinh tuyến tương ứng. Yêu cầu về mã hoá mã hoá chuyển tiếp cũng có thể trả lại thông tin bổ sung về vị trí được chỉ định, chẳng hạn như điểm ưa thích hoặc xây dựng ở vị trí đó.
Đối với cả hai loại yêu cầu, kết quả được trả về dưới dạng một mảng các đối tượng cho một khối điều khiển hoàn thành. Trong trường hợp yêu cầu mã hóa chuyển tiếp, nhiều đối tượng CLPlacemark có thể được trả lại nếu thông tin cung cấp cho phép có nhiều địa điểm.
Một đối tượng CLPlacemark chứa trong số các thuộc tính sau:
-
vị trí: Rất hữu ích cho chuyển tiếp mã hóa địa lý
-
name: Tên của địa chỉ vị trí
-
addressDictionary: Một từ điển có chứa các khóa và giá trị của Address Book cho dấu vị trí
-
ISOcountryCode: Tên quốc gia rút gọn
-
: Tên của (999) địa phương: Thành phố
-
subLocality: Thông tin cấp thành phố bổ sung (999) chẳng hạn như khu phố hoặc tên chung cho vị trí
-
lối đi: Đường phố
-
khu vực trũng: Thông tin cấp phố bổ sung, chẳng hạn như khu vực xây dựng số
-
: CLRegion
-
Điểm mốc và thông tin địa lý cũng có thể có sẵn trong đối tượng CLPlacemark trong các thuộc tính sau:
-
khu vựcInterest: Các lĩnh vực liên quan có liên quan được gắn với dấu vị trí
-
nội địaWater: tên của cơ thể nước nội địa gắn với dấu vị trí
-
đại dương: tên của đại dương liên quan đến địa điểm đánh dấu
Để đưa ra các quyết định thông minh về loại thông tin trả về, máy chủ mã hóa địa lý sử dụng tất cả thông tin được cung cấp cho nó khi xử lý yêu cầu.Ví dụ: nếu người dùng di chuyển nhanh dọc theo đường cao tốc, bộ mã hóa địa lý có thể trả lại tên vùng chung chứ không phải là tên của một công viên nhỏ mà người dùng đang đi qua.
-
Dưới đây là một số quy tắc khá lỏng lẻo (của Apple) để sử dụng đối tượng CLGeocoder:
-
Gửi tối đa một yêu cầu mã hoá địa lý cho bất kỳ hành động người dùng đơn lẻ nào. Nghĩa là, không bắt đầu yêu cầu khác cho đến khi kết thúc.
-
Nếu ứng dụng cần vị trí địa lý hóa ở nhiều vị trí bản đồ, hãy lưu và sử dụng lại các kết quả từ yêu cầu mã hoá địa lý ban đầu thay vì làm lại.
Khi bạn muốn cập nhật vị trí hiện tại của người dùng (chẳng hạn như khi người dùng di chuyển), chỉ phát hành yêu cầu mã hóa mới khi người dùng di chuyển một khoảng cách đáng kể, một khoảng thời gian hợp lý đã qua hoặc cả hai. Ví dụ: trong một tình huống điển hình, bạn không nên gửi nhiều yêu cầu mã hoá địa lý mỗi phút.
Không bắt đầu yêu cầu mã hoá địa lý nếu ứng dụng của bạn không hoạt động hoặc ở chế độ nền.
-
Thiết bị dựa trên iOS phải có quyền truy cập vào mạng để cho đối tượng CLGeocoder trả lại thông tin chi tiết vị trí chi tiết. Mặc dù iOS lưu trữ đủ thông tin cục bộ để báo cáo tên quốc gia đã được bản địa hoá và mã quốc gia ISO cho nhiều vị trí, nếu thông tin quốc gia không có sẵn cho một vị trí cụ thể, đối tượng CLGeocoder vẫn có thể báo cáo lỗi.
-
Như bạn có thể đoán, mã hóa địa lý tốn kém - đó là lý do tại sao các quy tắc này nhấn mạnh dữ liệu bộ nhớ đệm và không cập nhật trừ khi nó là cần thiết.
-
Bạn có thể sử dụng một đối tượng CLGeocoder hoặc kết hợp, hoặc độc lập với các lớp của khung MapKit.
