Javascript 地理定位API-对coordenates使用的质疑(编程新手)

Javascript 地理定位API-对coordenates使用的质疑(编程新手),javascript,Javascript,我是编程新手,我试着用天气和地理定位API运行代码 我创建了一个函数getLocation(position),这样我就可以获得要显示在apiUrl中的纬度和经度,但我无法找出哪里出了问题!它显示在控制台上,无法读取未定义的“coords”。谁能帮帮我吗?:) let apiKey=“6ae49199fbcb90f6780234a44e9b9db4”; 让单位=“公制”; 函数getLocation(位置){ 设geo=newarray(); 设纬度=位置坐标纬度; 让经度=position.

我是编程新手,我试着用天气和地理定位API运行代码

我创建了一个函数getLocation(position),这样我就可以获得要显示在apiUrl中的纬度和经度,但我无法找出哪里出了问题!它显示在控制台上,无法读取未定义的“coords”。谁能帮帮我吗?:)

let apiKey=“6ae49199fbcb90f6780234a44e9b9db4”;
让单位=“公制”;
函数getLocation(位置){
设geo=newarray();
设纬度=位置坐标纬度;
让经度=position.coords.longitude;
return geo=[纬度、经度]
}
//设APIRL=`https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=${apiKey}&units=${unit}`;
函数getPosition(){
navigator.geolocation.getCurrentPosition(getLocation);

}
未定义的值可能表示用户不同意发送位置数据。此外,最好将错误回调传递给getCurrentPosition。在这个回调中,您可以检查错误的原因。您的代码可以简化一点。 我举了两个例子。第二个使用arrow函数语法

下面我准备了一个小例子:

  <html>
    <head>
      <title>Test</title>
      <script>
        function onSuccessCallback(position) {
          let lastLocation=[position.coords.latitude, position.coords.longitude];
          document.getElementById("location").innerText=lastLocation;
        }

        function onErrorCallback(err){
          document.getElementById("location").innerText=err.message;
        }

        //navigator.geolocation.getCurrentPosition(onSuccessCallback, onErrorCallback);

        //example using arrow functions
        navigator.geolocation.getCurrentPosition(
          d => {
            let lastLocation=[d.coords.latitude, d.coords.longitude];
            document.getElementById("location").innerText=lastLocation;
          }, err => {
          document.getElementById("location").innerText=err.message;
        });
      </script>
    </head>
    <body>
      <h1 id="location"></h1>>
    </body>
  </html>

试验
函数onSuccessCallback(位置){
让lastLocation=[position.coords.latitude,position.coords.longitude];
document.getElementById(“位置”).innerText=lastLocation;
}
函数onErrorCallback(错误){
document.getElementById(“位置”).innerText=err.message;
}
//navigator.geolocation.getCurrentPosition(onSuccessCallback、onErrorCallback);
//使用箭头函数的示例
navigator.geolocation.getCurrentPosition(
d=>{
设lastLocation=[d.coords.latitude,d.coords.longitude];
document.getElementById(“位置”).innerText=lastLocation;
},err=>{
document.getElementById(“位置”).innerText=err.message;
});
>

您看到的结果到底是什么?哪一行错了?预期的结果是什么?您是否可以检查您是否使用https或http?当我在函数getLocation()中console.log(position.coords.latitude)时,
Geolocation.getCurrentPosition()
将仅在https…@Technoh上工作,例如,它正常显示值!但是,当我创建一个返回来显示一个包含变量的数组时,它就不起作用了:(@Technoh目标是将它们插入appiUrl中(如上所述),如果我将apiUrl放在函数中并返回它会更好吗?我在您的代码中没有看到任何console.log,这使我相信缺少了一些东西。请不要删除您的部分工作,因为您认为它们不相关。如果可能,请使用您的代码创建一个JSFIDLE。如果没有,请添加有关您所需内容的注释去做。