首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用geolocation.getCurrentPosition && geolocation.watchPosition

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

Stack Overflow用户
提问于 2019-03-08 13:57:15
回答 1查看 636关注 0票数 0

当用户移动0.1米时,我试着得到坐标。但是即使我不动,它也给了我原木,而且它们也不是相同的值。例如;

这是第一个值:

lat2 : 38.4420875 lng2 : 27.1441123

这是第二个值:

lat2 : 38.4420843 lng2 : 27.1441643

这里是我的代码:

代码语言:javascript
复制
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});
}

我做错了什么?

编辑İTED部分:

代码语言:javascript
复制
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米时,我加上了distanceFilter,给出了位置。但它总是给我每10或15秒。我在哪里搞错了?

EN

回答 1

Stack Overflow用户

发布于 2019-03-08 15:14:23

您可以通过设置enableHighAccuracy: true来实现高精度,但是,由于官方文件 states navigator.geolocation在Android中不太准确,因为它使用了Framework,而使用Google Location Service API,这是谷歌和ReactiveNative推荐的,因为它具有更高的电池效率和准确性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55064725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档