谷歌API V3鼠标悬停和调用

时间:2010-07-13 14:09:35

标签: javascript google-maps

我即将开始将Google地图V3实施到具有旧版谷歌地图的网站中。

  1. 升级是否难以改变?

  2. 我还需要在通话中添加api键

    例如:

    新来电

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">

    之前的电话

    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=someKEY">

  3. 最后我需要将鼠标悬停在一个地址链接上,地址显示在地图中,这是一项复杂的任务吗?

1 个答案:

答案 0 :(得分:2)

  1. v3 API的名称空间,类名和体系结构完全从v2 API发生了变化。我不会很难称之为升级,但这不是微不足道的。进一步阅读:Announcing Google Maps API v3

  2. 您不再需要v3 API的API密钥。只需包含您在问题中提到的脚本。

  3. 在悬停时对地址进行地理编码并不是很困难。您可能需要查看以下示例以帮助您入门:

  4. 示例:

    <!DOCTYPE html>
    <html> 
    <head> 
       <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
       <title>Google Maps Geocoding On Hover</title> 
       <script src="http://maps.google.com/maps/api/js?sensor=false" 
               type="text/javascript"></script> 
    </head> 
    <body> 
       <div id="map" style="width: 400px; height: 300px;"></div> 
    
       <ul>
         <li><a href="#" onmouseover="gc(this);">Oxford Street, London, UK</a></li>
         <li><a href="#" onmouseover="gc(this);">5th Ave, New York, USA</a></li>
         <li><a href="#" onmouseover="gc(this);">Via Nazionale, Rome, Italy</a></li>
         <li><a href="#" onmouseover="gc(this);">Rue de Rivoli, Paris, France</a></li>
       </ul>
    
       <script type="text/javascript"> 
         var address = 'London, UK';
    
         var map = new google.maps.Map(document.getElementById('map'), { 
             mapTypeId: google.maps.MapTypeId.ROADMAP,
             center: new google.maps.LatLng(40.71, -74.00),
             zoom: 13
         });
    
         var geocoder = new google.maps.Geocoder();
         var marker;
    
         function gc(element) {
           geocoder.geocode({
               'address': element.innerHTML
            }, 
            function(results, status) {
              if(status == google.maps.GeocoderStatus.OK) {
    
                // Clear the previous marker
                if (marker) marker.setMap(null);
    
                // Set the new marker
                marker = new google.maps.Marker({
                  position: results[0].geometry.location,
                  map: map
                });
    
                // Center the map on the geocoded result
                map.setCenter(results[0].geometry.location);
              }
           });
         }
    
       </script> 
    </body> 
    </html>
    

    截图:

    Google Maps Geocoding OnMouseOver