如何使用geolocation.getCurrentPosition && geolocation.watchPosition



我尝试在用户移动0.1米时尝试获得坐标。但是即使我不动,它也给了我日志,而且它们的价值也不相同。例如;

这是firts值:

lat2:38.4420875
LNG2:27.1441123

这是第二个值:

lat2:38.4420843
LNG2:27.1441643

这是我的代码:

ComponentDidMounth() {
navigator.geolocation.getCurrentPosition(
    (position) => {
      this.setState({ initialPosition: position });
      Latitude = position.coords.latitude;
                    Longitude = position.coords.longitude;
                    var lat = parseFloat(position.coords.latitude);
                     var lng = parseFloat(position.coords.longitude);
                           console.log("lat :",lat);
                           console.log("lng :",lng);
    },
    (error) => alert(JSON.stringify(error)),
    {enableHighAccuracy: false, timeout: 20000, maximumAge: 1111000, distanceFilter: 0.1}
);
this.watchID = navigator.geolocation.watchPosition((lastPosition) => {
    this.setState({ initialPosition: lastPosition });
    Latitude = lastPosition.coords.latitude;
    Longitude = lastPosition.coords.longitude;
     var lat = parseFloat(lastPosition.coords.latitude);
     var lng = parseFloat(lastPosition.coords.longitude);
           console.log("lat2 :",lat);
           console.log("lng2 :",lng);
},
(error) => alert(JSON.stringify(error)),
{enableHighAccuracy: false, timeout: 20000, maximumAge: 11111111, distanceFilter: 0.1});
}

我在哪里做错?

EDİTED零件:

import Geolocation from 'react-native-geolocation-service';
this.watchID = Geolocation.watchPosition((lastPosition) => {
    this.setState({ initialPosition: lastPosition });
    Latitude = lastPosition.coords.latitude;
    Longitude = lastPosition.coords.longitude;
     var lat = parseFloat(lastPosition.coords.latitude);
     var lng = parseFloat(lastPosition.coords.longitude);
           console.log("lat2 :",lat);
           console.log("lng2 :",lng);
},
(error) => alert(JSON.stringify(error)),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 250, distanceFilter: 1});

此编辑部分中的代码在每10秒内给我我的位置。当我移动1米时,我添加了远距离窗口以给我一个位置。但这总是在每10或15秒内给我。我在哪里犯错?

您可以通过设置enableHighAccuracy: true来启用高精度,但是正式文档指出,由于使用框架Geotork API,因此navigator.geolocation在Android中的准确性降低了,而是使用Google位置服务API,该API均与Google和React进行React API本机建议是因为它更有效,准确。

相关内容

  • 没有找到相关文章

最新更新