Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取google地图中的当前位置并将其传递给javascript中的变量_Javascript_Google Maps_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

获取google地图中的当前位置并将其传递给javascript中的变量

获取google地图中的当前位置并将其传递给javascript中的变量,javascript,google-maps,google-maps-api-3,google-maps-markers,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,我想在谷歌地图上显示从当前位置到已知位置的方向。我的代码如下所示: <script> var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var map; function initialize() { directionsDisplay = new google.maps.DirectionsRenderer(); var bne = new g

我想在谷歌地图上显示从当前位置到已知位置的方向。我的代码如下所示:

      <script>
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() {
  directionsDisplay = new google.maps.DirectionsRenderer();
  var bne = new google.maps.LatLng(-27.572832, 153.065247);
  var mapOptions = {
    zoom:7,
    center: bne
  }
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  directionsDisplay.setMap(map);
}


function calcRoute() {
  navigator.geolocation.getCurrentPosition(
    function (pos) {
      var start = new google.maps.LatLng(pos.coords.latitiude,
                                         pos.coords.longitude);

      var end = 'sunnybank,brisbane';
      var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.TravelMode.DRIVING
      };
      directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
          directionsDisplay.setDirections(response);
        }
      });
    }, 
    function (err) {
      alert('ERROR(' + err.code + '): ' + err.message);
    });
  }

google.maps.event.addDomListener(window, 'load', initialize);

    </script>

var方向显示;
var directionsService=new google.maps.directionsService();
var映射;
函数初始化(){
directionsDisplay=new google.maps.DirectionsRenderer();
var bne=new google.maps.LatLng(-27.572832153.065247);
变量映射选项={
缩放:7,
中心:bne
}
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
方向显示.setMap(地图);
}
函数calcRoute(){
navigator.geolocation.getCurrentPosition(
功能(pos){
var start=new google.maps.LatLng(pos.coords.lattiude,
位置坐标经度);
var end=‘布里斯班的桑尼银行’;
var请求={
来源:start,
目的地:完,
travelMode:google.maps.travelMode.DRIVING
};
路由(请求、功能(响应、状态){
if(status==google.maps.directionstatus.OK){
方向显示。设置方向(响应);
}
});
}, 
功能(err){
警报('ERROR('+err.code+'):'+err.message);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

似乎navigator.geolocation.getCurrentPosition()对我不起作用,是否有其他方法检索当前位置并将其传递给start变量?

可能有三个原因:

  • 您的浏览器不支持地理位置
  • 您已禁用地理位置跟踪。在google chrome中,您可以启用它在选项中查找,在设置中搜索位置
  • 如果您在pc上直接使用HTML文件作为文件:///出于安全原因,将禁用地理位置
  • 根据,getCurrentPosition函数将a传递给其回调函数(它是异步的,因此无法返回任何内容),该回调函数不是google.maps.LatLng对象(但包含创建一个对象所需的信息)


    您使用哪种浏览器?google chrome..这有关系吗?Thx,我根据您的建议更改了代码~浏览器提示我允许获取位置。但是在路线没有显示之后。我使用了F12,也没有任何指示,知道为什么吗?也许方向服务返回的状态不是“OK”,我通常会在我的答案中添加警报,以便在出现这种情况时通知我。
    function calcRoute() {
      navigator.geolocation.getCurrentPosition(function(pos) {
        var start = new google.maps.LatLng(pos.coords.latitiude,
                                           pos.coords.longitude);
    
        var end = 'sunnybank,brisbane';
        var request = {
          origin:start,
          destination:end,
          travelMode: google.maps.TravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
          if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
          } else alert("Directions request failed: "+status);
        });
      }, function(err) {
        alert('ERROR(' + err.code + '): ' + err.message);
      });
    }