在本地测试谷歌地图 V3 地理位置?

Posted

技术标签:

【中文标题】在本地测试谷歌地图 V3 地理位置?【英文标题】:test google maps V3 geolocation locally ? 【发布时间】:2011-10-28 21:10:03 【问题描述】:

我正在尝试在我的计算机上测试一些地理定位代码,但我什至无法运行这些示例。 虽然当我尝试从我的计算机打开 html 文件时它们从文档网站完美运行,但我得到一个空白页面,我所做的只是试图检测我的位置......

代码如下:

    <!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="UTF-8">
    <link href="/apis/maps/documentation/javascript/examples/default.css"
      rel="stylesheet" type="text/css">
    <!--
    Include the maps javascript with sensor=true because this code is using a
    sensor (a GPS locator) to determine the user's location.
    See: http://code.google.com/apis/maps/documentation/javascript/basics.html#SpecifyingSensor
    -->
    <script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>

    <script type="text/javascript">
      var map;

      function initialize() 
        var myOptions = 
          zoom: 6,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        ;
        map = new google.maps.Map(document.getElementById('map_canvas'),
            myOptions);

        // 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="map_canvas"></div>
  </body>
</html>

请帮忙,你能找出我做错了什么吗?

【问题讨论】:

【参考方案1】:

您需要将样式表中的链接更改为绝对链接:

<link href="http://code.google.com//apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css">

【讨论】:

以上是关于在本地测试谷歌地图 V3 地理位置?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图 API V3 - 完全相同的位置上的多个标记

谷歌地图 v3 可拖动标记

谷歌地图 API V3 fitBounds() 不工作

根据用户的地理位置居中谷歌地图

如何在谷歌地图 api V3 中偏移中心点

地图上的 Google Map Api v3 拖动事件