Javascript 谷歌地图API v3地理位置在谷歌浏览器中不起作用

Javascript 谷歌地图API v3地理位置在谷歌浏览器中不起作用,javascript,google-maps,google-maps-api-3,geolocation,Javascript,Google Maps,Google Maps Api 3,Geolocation,我正在使用GoogleMapsAPI v3地理位置来获取用户的实际位置。我从谷歌开发者那里找到了这篇帖子: 这里是我的代码(相当于谷歌地图示例的代码): //注意:此示例要求您在以下情况下同意位置共享: //由浏览器提示。如果您看到的是空白区域而不是地图,则 //可能是因为您拒绝了位置共享的权限。 var映射; 函数初始化(){ 变量映射选项={ 缩放:6, mapTypeId:google.maps.mapTypeId.ROADMAP }; map=new google.maps.map(

我正在使用GoogleMapsAPI v3地理位置来获取用户的实际位置。我从谷歌开发者那里找到了这篇帖子:

这里是我的代码(相当于谷歌地图示例的代码):


//注意:此示例要求您在以下情况下同意位置共享:
//由浏览器提示。如果您看到的是空白区域而不是地图,则
//可能是因为您拒绝了位置共享的权限。
var映射;
函数初始化(){
变量映射选项={
缩放:6,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
map=new google.maps.map(document.getElementById('map-canvas'),
地图选项);
//试试HTML5地理定位
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var pos=新的google.maps.LatLng(position.coords.latitude,
位置坐标经度);
var infowindow=new google.maps.infowindow({
地图:地图,
职位:pos,,
内容:“使用HTML5找到的位置。”
});
地图设置中心(pos);
},函数(){
手持导航(真);
});
}否则{
//浏览器不支持地理位置
手动定位(假);
}
}
函数handleNogeLocation(errorFlag){
如果(错误标志){
var content='错误:地理位置服务失败';
}否则{
var content='错误:您的浏览器不支持地理位置';
}
变量选项={
地图:地图,
职位:新google.maps.LatLng(60105),
内容:内容
};
var infowindow=new google.maps.infowindow(选项);
地图设置中心(选项位置);
}
google.maps.event.addDomListener(窗口“加载”,初始化);
它是

这在Firefox中运行得很好,但在Google Chrome&Safari中却不行。我认为因为Chrome和Safari是webkit浏览器。但我不知道如何修复它

有人能帮我吗?

我找到了

这似乎是文件协议的安全限制。看起来您需要从服务器本地托管它

我已经在本地服务器上测试了你的代码,效果很好。 希望我能帮上忙。

对于遇到问题的浏览器,尝试使用谷歌地图,而不是谷歌地图


您可以找到参考

其中哪一部分不起作用?你看不到地图,你无法获取用户的位置,你得到了一个javascript错误?出现了一个错误:
错误:地理定位服务失败。
然后标记点在俄罗斯某处的森林中(我在瑞士…)嗯。谢谢,你知道我如何从本地服务器托管它吗?示例取决于您使用的操作系统。我正在为OSX使用MAMP()。如果您使用的是Windows,请查看XAMP。只需将html/php/css/whatever文件放入htdocs文件夹并启动服务器。这里有一个关于MAMP()的小问题解答,你是说XAMPP?我正在使用windows。在我的公司,我们不使用XAMPP。我们使用IIS。你知道怎么用这种方式主持吗?是的,我是说XAMPP。我对IIS一无所知。只需尝试一下XAMPP,它非常直接且易于使用!我已经知道XAMPP了。我在家里使用它来创建一些测试网站(只是为了提高我的HTML/HTML5、CSS/CSS3和jQuery技能)。但是在我们公司,他们不想使用XAMPP,因为他们很多年前就使用过IIS:)但是感谢您尝试帮助我,我想我会找到答案并在这里发布解决方案:)
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>

<script>
// Note: This example requires that you consent to location sharing when
// prompted by your browser. If you see a blank space instead of the map, this
// is probably because you have denied permission for location sharing.

var map;

function initialize() {
  var mapOptions = {
    zoom: 6,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

  // Try HTML5 geolocation
  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var pos = new google.maps.LatLng(position.coords.latitude,
                                       position.coords.longitude);

      var infowindow = new google.maps.InfoWindow({
        map: map,
        position: pos,
        content: 'Location found using HTML5.'
      });

      map.setCenter(pos);
    }, function() {
      handleNoGeolocation(true);
    });
  } else {
    // Browser doesn't support Geolocation
    handleNoGeolocation(false);
  }
}

function handleNoGeolocation(errorFlag) {
  if (errorFlag) {
    var content = 'Error: The Geolocation service failed.';
  } else {
    var content = 'Error: Your browser doesn\'t support geolocation.';
  }

  var options = {
    map: map,
    position: new google.maps.LatLng(60, 105),
    content: content
  };

  var infowindow = new google.maps.InfoWindow(options);
  map.setCenter(options.position);
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
    <div id="container">
        <div class="entry-content">
            <div class="blogtitle">IT</div><p>&nbsp;</p></td><td> </td><td><p>&nbsp;</p></td></tr></tbody></table><p>&nbsp;</p>
            <div id="map-canvas"></div><!-- map-canvas end -->
        </div><!-- entry-content end -->
    </div><!-- container end -->
</body>