当前位置: 首页 > 知识库问答 >
问题:

Google Maps API v3地理定位在Google Chrome中不工作

拓拔弘扬
2023-03-14

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

https://developers.google.com/maps/documentation/javascript/examples/map-geolocation

这里是我的代码(相当于Google Maps示例的代码):

<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>

这在Firefox中工作得很好,但在Google Chrome&Safari中就不行了。我想是因为Chrome和Safari都是webkit浏览器。但我不知道怎么修。

有人能帮帮我吗?

共有2个答案

朱皓
2023-03-14

尝试使用HTML5地理定位API,而不是谷歌地图的一个浏览器,你有问题。

你可以在这里找到参考资料

韦睿
2023-03-14

我找到了这个

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

我已经用本地服务器测试了您的代码,它工作得很好。希望我能帮上忙。

 类似资料:
  • 主要内容:定位用户的位置,浏览器支持,HTML5 - 使用地理定位,实例,处理错误和拒绝,实例,在地图中显示结果,实例,给定位置的信息,getCurrentPosition() 方法 - 返回数据,Geolocation 对象 - 其他有趣的方法,实例HTML5 Geolocation(地理定位)用于定位用户的位置。 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。 浏览器支持 Inte

  • 我使用OrientDB的非关系型数据库,我不知道如何查询地理位置准确。 OrientDB函数 但不理解价值观的意义。 距离函数: distance()-使用Haversine算法计算地球上两点之间的距离。坐标必须为度 例: 其中距离(x,y,52.20472,0.14056) 两个问题: X,Y和30个值是多少 谢谢

  • HTML5 Geolocation(地理定位)用于定位用户的位置。 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。 浏览器支持 Internet Explorer 9+, Firefox, Chrome, Safari 和 Opera 支持Geolocation(地理定位). 注意: G

  • 我有一个带有地理定位插件的cordova应用程序:https://github.com/apache/cordova-plugin-geolocation 我的很多用户报告说,我的应用程序中的地理定位速度很慢(他们所说的慢大约是6秒)。他们说当我们使用Waze时,需要2秒钟。。。 我在SO上也发现了这篇帖子:为什么HTML5地理定位比Android上的原生版本慢? 我已经在使用Cordova人行横

  • 我在iOS ;7上运行良好的应用程序不能在iOS ;8 SDK上运行。 没有返回位置,而且我也没有在“设置”->“位置服务”下看到我的应用程序。我在谷歌上搜索了这个问题,但什么也没有找到。会有什么问题吗?

  • 地理定位是HTML5中新增的API特性,它允许JavaScript程序向浏览器询问用户真实的地理位置。识别地理位置的一些应用就可以使用它来显示地图、导航和其它一些与用户当前位置有关的信息。当然,考虑到用户的隐私,支持地理定位API的浏览器在JavaScript程序获取用户物理位置前总是会询问用户是否允许获取当前位置。 navigator.geolocation 支持地理位置API的浏览器会定义 n