2017-02-27 79 views
-2

这是我在javascript文件下运行时得到的错误为什么地理位置HTML5 getCurrentPosition()在Google Map上不起作用?

getCurrentPosition()和watchPosition()不再适用于不安全的起源。要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS。有关更多详情,请参阅https。

这是我的JavaScript文件

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
<script 
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA4HSRrQSje--aI6ImtJF30s5ezaUWxsow&libraries=places"></script> 

<script> 
function getLocation() 
    { 
     console.log("In geolocation"); 
     if (navigator.geolocation) 
     { 
     navigator.geolocation.getCurrentPosition(showPosition); 
     } 
     else 
     { 
     print("Browser doesn't support geolocation"); 
     } 

function showPosition(position) 
    { 
     console.log("in show position"); 
     dest_lat=position.coords.latitude; 
     dest_long=position.coords.longitude; 

     url = 'https://maps.googleapis.com/maps/api/geocode/json?latlng='+ dest_lat + ',' + dest_long + '&sensor=false'; 
     $.get(url, function(data) 
      { 
        if (data.status == 'OK') 
        { 
         map.setCenter(data.results[0].geometry.location);     
          console.log("Dragaed lat "+marker.getPosition().lat()); 
          console.log("Dragged lng "+marker.getPosition().lng()); 
          console.log("Address "+data.results[0].formatted_address); 
        } 
       }); 
    } 
</script> 
</head> 
<body> 
<input type="button" value="LocateMe" onclick="getLocation();"/> 
</body> 
</html> 
+1

错误信息非常明确,什么都不用你了解了吗?您不能在未通过https提供的页面上使用这些功能。 – baao

+0

嘿! Baoo。我可以看到错误。我能够理解它。但我在解决它时遇到了问题。最后,我明白了。这只是我是网页编程的新手。谢谢。 –

回答

0

你必须把它放在一个服务器https://https://dotnetcodr.com/2015/09/18/how-to-enable-ssl-for-a-net-project-in-visual-studio/ Alternativelyyou可以测试它jsfiddler,它使用https每默认:

如果您正在使用Visual Studio,你可以看到https://配置午餐现场。

除此之外,您的代码还有很多其他错误。

  • 括号不匹配
  • map对象并不在你的例子
  • 可变因素没有声明定义(它们被加入到全局命名空间,其可以在以后导致一些真正讨厌的问题,并抛出一个错误当您使用"use strict"

这里是一个的jsfiddle工作excample:https://jsfiddle.net/3gkkvs50/ (计算器不使用https的例子)

HTML:

<input type="button" value="LocateMe" onclick="getLocation();" /> 

JS:

function getLocation() { 
    console.log("In geolocation"); 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
    print("Browser doesn't support geolocation"); 
    } 
} 

function showPosition(position) { 
    console.log("in show position"); 
    var dest_lat = position.coords.latitude; 
    var dest_long = position.coords.longitude; 

    var url = 'https://maps.googleapis.com/maps/api/geocode/json?latlng=' + dest_lat + ',' + dest_long + '&sensor=false'; 
    $.get(url, function(data) { 
    alert(JSON.stringify(data)); 
    }); 
} 
+0

这对我很有用,我对问题和解决方案也有清晰的了解。谢谢Stefan。 –

+0

然后请接受答案:) – Stefan