Table of Contents
Kết hợp bản đồ và tính năng định vị địa lý trong các ứng dụng bản địa phản ứng
Ứng dụng di động có nhận thức được vị trí đã trở thành tiêu chuẩn, cung cấp cá nhân hoá người dùng, kinh nghiệm ngữ cảnh. Phản ứng tự nhiên, với khả năng tạo hình chữ thập, cung cấp một nền tảng mạnh mẽ để xây dựng ứng dụng như vậy. Kết hợp bản đồ và định vị địa lý không chỉ cải thiện sự đính kèm của người dùng mà còn mở khóa các tính năng như định vị, thông báo vị, và tìm kiếm vị trí gần. Bài này cung cấp một hướng dẫn toàn diện để nhập bản đồ và truy cập thiết bị trong các thư viện tự nhiên, bao gồm các mẫu thiết yếu, trình bày, xem xét nền cụ thể, và các hoạt động tốt nhất.
Điểm chính: Bản đồ và định vị địa lý trong bản đồ phản ứng
Bản đồ trong ứng dụng di động là hình ảnh tương tác của dữ liệu địa lý. Trong bản đồ phản xạ, người bản địa được dịch là thành phần bản đồ tự nhiên được hỗ trợ bởi hệ thống SDK (Goggle Bản đồ trên An- rô- am, Apple Bản đồ trên iOS, hoặc Google Maps thông qua các nhà cung cấp tùy chỉnh). Sự sắp xếp địa phương ám chỉ khả năng lấy tọa độ thế giới thực (titude, kinh độ) bằng định tuyến GPS, hoặc mạng tế.
Cùng nhau, những tính năng này cung cấp năng lượng cho một loạt các trường hợp sử dụng rộng rãi: màn hình đi chia sẻ, nhà hàng, thiết bị theo dõi thể dục, và theo dõi giao hàng. phản ứng bản địa phơi bày khả năng này thông qua thư viện có tính cách cộng đồng mà nối kết các thành phần SDK bản địa vào JavaScript.
Các thư mục phổ biến cho Bản đồ và Định vị địa lý
sơ đồ phản ứng
Tiêu chuẩn thực tế cho việc tạo bản đồ phản ứng bản đồ cho bản đồ, hỗ trợ cả bản đồ Google Map và Apple Bản đồ thông qua một hệ thống API thống thống thống nhất. Tính năng này bao gồm các đánh dấu tùy chỉnh, gọi tắt, đa giác, đa giác, đa giác, đa giác, bản đồ nhiệt, và cử chỉ xử lý nhiệt được xây dựng. Thư viện được bảo trì và được tiếp nhận rộng rãi.
Dịch vụ định vị phản ứng
Trong khi lõi của người bản địa thì có thể dùng, nó bị phân hủy và thiếu kiểm soát tốt. [FLT: 0] hoạt động trên iOS và i-geo-geiation cung cấp một sự thay thế lời hứa hiện đại với độ chính xác, thời gian và sự cho phép. Nó hoạt động một cách nhất quán với sự kết hợp bản địa đúng đắn.
Việc sắp xếp cửa sổ
Để quản lý các dự án, việc đặt cung cấp một hệ thống ADI có luồng điều khiển quyền hạn, theo dõi địa điểm và địa lý ra khỏi hộp. Nó đơn giản hóa tiến trình phát triển nhưng giới hạn truy cập vào mã hóa tự nhiên [FLT: 1] cung cấp một hệ thống mã hóa cho các mẫu thử nghiệm hoặc ứng dụng không cần thiết nền tảng tích hợp sâu sắc.
Những thư viện đáng chú ý khác
- chính xác-cho-cho-nate- places : cung cấp tự động đầy đủ và địa điểm chi tiết từ Google Places API.
- đang tạo- mảng ảnh ) Cung cấp kiểu dáng tự chọn và gạch ngoài (không tích cực duy trì).
- Đang tạo- mảng- siêu nóng : thêm các cụm hiệu quả để phản ứng- mảng.
Để so sánh chi tiết, hãy xem tài liệu chính thức [FLT:-maps ) và đang thực hiện việc định vị [FLT:].
Bản đồ được tô điểm theo cách của bạn
Cài đặt và Thiết lập
Bắt đầu bằng việc cài đặt các quan hệ phụ thuộc riêng của thư viện và cấu hình nền.
npm install react-native-maps
cd ios && pod install
Nếu bạn đang sử dụng Google Map trên A-rô-bốt, hãy thêm chìa khóa A-đi vào :
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_GOOGLE_MAPS_API_KEY" />
Đối với iOS với Google Ánh xạ, thêm chìa khóa tương tự vào hoặc . Hoặc, Apple Maps làm việc ra khỏi hộp mà không cần chìa khóa ADI.
Thành phần sơ đồ cơ bản
Thành phần chính , chấp nhận một để xác định diện tích ban đầu nhìn thấy:
import MapView from 'react-native-maps';
function MapScreen() {
const region = {
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
};
return (
<MapView style={{ flex: 1 }} region={region} />
);
}
và điều khiển cấp phóng to. Giá trị lớn hơn hiển thị diện tích rộng hơn.
Thêm dấu và số lần
Các dấu hiệu xác định vị trí trên bản đồ, có thể bao gồm cả tiêu đề và mô tả, được hiển thị như là cuộc gọi khi có người nghe:
import MapView, { Marker, Callout } from 'react-native-maps';
<MapView style={{ flex: 1 }} initialRegion={region}>
<Marker
coordinate={{ latitude: 37.78825, longitude: -122.4324 }}
title="Coffee Shop"
description="Best espresso in town"
>
<Callout>
<View>
<Text>Coffee Shop</Text>
<Text>Best espresso in town</Text>
</View>
</Callout>
</Marker>
</MapView>
Tự chọn
Thay thế huy hiệu đánh dấu mặc định bằng một ô xem riêng bằng lời hứa :
<Marker coordinate={{ latitude: 37.78825, longitude: -122.4324 }}>
<Image source={require('./custom-pin.png')} style={{ width: 40, height: 40 }} />
</Marker>
Khi đối phó với hàng trăm hay hàng ngàn đánh dấu, hãy tự động sử dụng cụm để cải tiến hiệu suất. Các thư mục như xử lý tự động nhóm và quản lý cấp phóng đại.
Hình vẽ: Đa giác
Để định tuyến, hãy dùng và thành phần:
import MapView, { Polyline, Polygon } from 'react-native-maps';
<MapView>
<Polyline
coordinates={[
{ latitude: 37.78825, longitude: -122.4324 },
{ latitude: 37.78900, longitude: -122.4340 },
]}
strokeColor="#000"
strokeWidth={3}
/>
<Polygon
coordinates={[
{ latitude: 37.788, longitude: -122.432 },
{ latitude: 37.789, longitude: -122.432 },
{ latitude: 37.789, longitude: -122.433 },
]}
fillColor="rgba(0, 125, 255, 0.3)"
strokeColor="blue"
/>
</MapView>
Làm sống động bản đồ
Chương trình di chuyển máy ảnh bằng hoặc ]:
const mapRef = useRef(null);
const moveToLocation = (lat, lng) => {
mapRef.current.animateToRegion({
latitude: lat,
longitude: lng,
latitudeDelta: 0.01,
longitudeDelta: 0.01,
}, 1000); // duration in ms
};
Truy cập vị trí người dùng
Đang cài đặt dịch vụ định vị phản ứng- bảo mật
npm install react-native-geolocation-service
cd ios && pod install
Thư viện đòi hỏi sự cho phép đặt trên cả hai nền tảng. Đối với A- am- am- am- am- am, yêu cầu quyền chạy thời gian bằng hoặc một thư viện tận tụy như . Trên iOS, gồm chìa khóa hoặc .
Sống độc thân
import Geolocation from 'react-native-geolocation-service';
Geolocation.getCurrentPosition(
(position) => {
const { latitude, longitude } = position.coords;
console.log(`User location: ${latitude}, ${longitude}`);
},
(error) => {
console.warn(error.code, error.message);
},
{ enableHighAccuracy: true, timeout: 15000, maximumAge: 10000 }
);
Lần theo địa điểm liên tục
Để di chuyển thời gian thực (v.g., theo dõi thể dục), sử dụng ]:
const watchId = Geolocation.watchPosition(
(position) => {
setUserLocation(position.coords);
},
(error) => console.warn(error),
{ enableHighAccuracy: true, distanceFilter: 5, interval: 3000 }
);
// Later, when no longer needed:
Geolocation.clearWatch(watchId);
Vị trí nền
Để ứng dụng cần cập nhật vị trí ngay cả khi ở nền (v. d., theo dõi giao hàng), cần có thêm các bước cần thiết:
- [FLT: 0] iOS: ) Bật chế độ ) để cập nhật lại ) và kiểm tra “Sự cập nhật cho tập tin. Hãy dùng để cập nhật thân thiện với pin.
- ; Dùng dịch vụ hậu phương với thông báo bền bỉ. Thư viện cung cấp và .
Luôn luôn có sự cho phép thích hợp trước khi cho phép theo dõi nền, và thông báo rõ ràng cho người dùng tuân theo hướng dẫn của các cửa hàng ứng dụng.
Quyền sử dụng những thực hành tốt nhất
Gọi yêu cầu cho người dùng sau khi có ngữ cảnh để tìm địa điểm cần thiết. Hãy dùng thư viện như để quản lý quyền truy cập chéo.
import { check, request, PERMISSIONS, RESULTS } from 'react-native-permissions';
import { Platform } from 'react-native';
const requestLocationPermission = async () => {
const permission = Platform.select({
ios: PERMISSIONS.IOS.LOCATION_WHEN_IN_USE,
android: PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION,
});
const result = await request(permission);
return result === RESULTS.GRANTED;
};
Hãy xử lý việc từ chối một cách duyên dáng. g., hiển thị một cảnh giác giải thích tại sao cần thiết và hướng dẫn người dùng đến thiết lập hệ thống.
Lỗi xử lý và trường hợp cạnh
- Từ chối: rơi trở lại vùng mặc định hoặc nhắc người dùng bật vị trí từ thiết lập.
- Khi mất tín hiệu GPS trong nhà, hãy dùng để nhận dữ liệu đã lưu tạm.
- lỗi mạng:) Bản đồ tải có thể thất bại nếu không có Internet. Vẽ một thông điệp giữ chỗ hay tắt.
- Thời gian Đặt một hợp lý (v. d., 15 giây) và thông báo cho người dùng.
Cách tô màu
Giảm những người chăm sóc lại không cần thiết
- Hãy làm sạch các vật thể và để ngăn chặn sự tái phát trên mỗi thay đổi của bang.
- Dùng cho các thành phần trẻ em như đánh dấu tùy chỉnh.
- Trottle hoặc debounce updates trong gọi lại.
Giới hạn bản đồ
- Dùng để cập nhật chỉ khi người dùng di chuyển khoảng cách tối thiểu.
- Tránh tái tạo toàn bộ bản đồ bằng cách giữ dữ liệu đánh dấu trong khi bộ đánh dấu không thay đổi.
Quản lý bộ đệm
Khi hiển thị nhiều dấu hiệu, cho phép cụm hoặc tải chỉ các dấu đánh dấu thấy được trong ô xem hiện thời bằng .
Comment
iOS
- Bản đồ Apple không cần một phím ADI, nhưng nó thiếu một số tính năng Google Bản đồ như tòa nhà 3D và định vị trong nhà.
- Đối với Google Bản đồ trên iOS, bạn phải thêm chìa khóa ADI vào và liên kết các bản đồ Google SDK.
- Nhớ đặt để định vị.
An- rô- a- rô- a- rô- a
- Bản đồ Google đòi hỏi một phím ADI hợp lệ trong danh sách. Hiển thị nó từ bàn điều khiển của Google Cloud và bật “Maps SDK cho Antero.
- Trên một số thiết bị, những địa điểm chế nhạo có thể can thiệp vào để phát hiện.
- Dùng dịch vụ hậu phương để tìm vị trí nền. Ứng dụng cần hiển thị thông báo để còn sống.
Kiểm tra tính năng vị trí
- Trong Xcode, có thể “ Xác định vị trí của địa điểm để đặt bất kỳ tọa độ nào.
- Đối với Phòng Thu Đồ họa am bàn, hãy dùng “Sự kiểm soát có tính cách mới để gửi dữ liệu GPS.
- Kiểm tra các thiết bị thực để kiểm tra độ chính xác GPS, hộp thoại cho phép và hành vi theo dõi nền.
- Viết bài kiểm tra xem có hợp lý không và thử nghiệm UI với các công cụ như hoặc .
Tài nguyên bên ngoài
- Đang tạo ra các bản đồ GitHub Repostory
- Đang thực hiện di chuyển-geo- Service GitHub Repository )
- Tài liệu về hệ thống bản đồ )
- Tài liệu bản đồ ) )
Kết luận
Kết hợp bản đồ và định vị địa lý trong ứng dụng tự động bản đồ phản ứng tự nhiên biến giao diện tĩnh thành kinh nghiệm động, nhận thức địa điểm. Bằng cách điều khiển thư viện mạnh mẽ như sơ đồ phản ứng và định vị phản ứng- phụ thuộc vào dịch vụ địa phương, các nhà phát triển có thể thêm các bản đồ có tính năng phong phú, theo dõi và cho phép không xác định. Chú ý đến các khác biệt nền tảng, hiệu quả hóa, và sự riêng tư của người dùng bảo đảm một ứng độ bóng, đáng tin cậy. Với các mô hình và các thực hành tốt nhất được nêu ra ở đây, bạn được trang bị để xây dựng tính năng sẵn sàng cho việc sản xuất các tính năng thích thú.