API геолокации React-native, заголовок всегда равен нулю. Невозможно показать точное движение в реальном времени (androiAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 API геолокации React-native, заголовок всегда равен нулю. Невозможно показать точное движение в реальном времени (androi

Сообщение Anonymous »

Шокирует тот факт, что пакет React-native-geolocation не может отображать заголовок устройства Android в реальном времени, несмотря на то, что lat и lng обновляются в реальном времени, а устройство движется. Я воздерживаюсь от использования onLocationChange, который сам встроен в карты Google, потому что он добавляет синий круглый значок, который я не могу обойти. Я предпочитаю использовать свой собственный значок маркера. Я выполнил инструкцию на странице github, но заголовок все равно не обновляется. Я решил использовать датчики на устройстве только для использования двух моих устройств, и все они не имеют магнитометра. Мне нужно корректно выйти и справиться, если на устройстве нет магнитометра. Я пытался использовать гироскоп, но в моих устройствах его тоже нет. Вторая часть меня шокировала, потому что аппаратные модули доступны уже давно. Я снова занимаюсь исправлением геолокации или есть ли способ удалить синий значок, который поставляется с onLocationChange. В любом случае проверьте мой код и посмотрите, есть ли какие-либо пробелы.
//track patrol team location
React.useEffect(() => {
Geolocation.requestAuthorization(
(_success?: any) => {
console.log("Location permission requested successfully");
},
(error?: GeolocationError) => {
console.log("Error requesting location permission:", error);
}
);
const watchId = Geolocation.watchPosition(
(position) => {
const { latitude, longitude, heading: geoHeading } = position.coords;
setCurrentPosition({
coordinate: { latitude, longitude },
altitude: position.coords.altitude ?? 0,
accuracy: position.coords.accuracy,
speed: position.coords.speed ?? 0,
heading: (heading || geoHeading) ?? 0, // Use heading if available
altitudeAccuracy: position.coords.altitudeAccuracy ?? undefined,
timeStamp: position.timestamp,
});

if (origin && destination && recordingMode) {
if (
state &&
state.location.lat !== latitude &&
state.location.lng !== longitude
) {
dispatch({
type: Types.SetLocation,
payload: {
lat: latitude ?? 0,
lng: longitude ?? 0,
heading: heading ?? 0,
},
});
} else return;
makeLogEntry({
latitude,
longitude,
heading: heading ?? undefined,
})
.then(() => console.log("Log made successfully"))
.catch((error) => console.log("Error making log entry:", error));
}
},
(error) => {
console.log("Error watching position:", error);
},
{
enableHighAccuracy: true,
distanceFilter: 0,
interval: 5000,
fastestInterval: 2000,
}
);

return () => {
Geolocation.clearWatch(watchId);
};
}, [origin, destination, recordingMode]);


Подробнее здесь: https://stackoverflow.com/questions/790 ... ealtime-ac
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»