首页 > 解决方案 > 如何使用 watchPosition (js) 获得正确的经纬度

问题描述

我正在使用watchPosition方法来实时检索纬度和经度(当用户移动时,它们会改变)。问题是我得到了错误的纬度和经度:错误的第三个十进制数字。

这里的实现代码:

export class App extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      pos:null
    };
  }
   componentDidMount(){
    if (navigator.geolocation){
      navigator.geolocation.watchPosition(
        (position)=>{
          console.log("lat: ", position.coords.latitude);
          console.log("long: ", position.coords.longitude);
          this.setState({pos:position});
        },
          (err) => console.warn(err.code),
          {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
        )
    }else{
      console.log("Allow position pls");
    }
  }
  render (){
    return (
      <div className="App">
        <ApiCall props={this.state}/>
      </div>
    );
  }
};
export default App;

例如:我得到纬度 45.7526304,而正确的纬度应该是 45.7548103

关于为什么会发生这种情况的任何想法?

标签: javascriptreactjsgeolocationgps

解决方案


推荐阅读