2017-08-08 27 views
-1

不確定這裏有什麼問題。地圖加載良好並添加了自定義標記,但縮放級別不起作用,地圖類型也不起作用。谷歌地圖縮放比例和地圖類型不起作用

<div id="locationMap" class="locationMap"></div> 

<script type="text/javascript"> 
     var map = null; 
     var map_bounds = null; 
     var gMarkers = []; 

     function initialize() { 

      var mapOptions = { 
       zoom: 12, 
       scrollwheel: false, 
       mapTypeId: 'hybrid' 
      }; 

      map = new google.maps.Map(document.getElementById('locationMap'), mapOptions); 
     } 

     function addToMap(location, lat, long, title, marker) { 

      if (lat != null && long != null) { 

       var iconBase = 'map-marker.png' 

       var myLatLng = new google.maps.LatLng(lat, long); 

       var marker = new google.maps.Marker({ 
        map: map, 
        position: myLatLng, 
        title: title, 
        icon: iconBase 
       }); 

       if (map_bounds == null) { map_bounds = new google.maps.LatLngBounds(); } 
       map_bounds.extend(marker.getPosition()); 
       map.fitBounds(map_bounds); 

       // Create info window object 
       var wname = new google.maps.InfoWindow({ 
        content: location 
       }); 
       gMarkers.push(marker); // Add To Marker Array 
       google.maps.event.addListener(marker, 'click', function() { 
        //map.setCenter(marker.getPosition()); 
        wname.open(map, marker); 
       }); 
      } 
     } 
    initialize(); 
</script> 

<script type="text/javascript">addToMap('<a href="<?php the_permalink(); ?>" class="locationMapPop"><?php the_title(); ?></a><br /><?php echo $profileStreet; ?><br /><?php echo $profileAddrLine2; ?><br /><?php echo $profilePhoneTakeOut; ?>', '<?php echo $profileLatitude; ?>', '<?php echo $profileLongitude; ?>','<?php echo $profileAddress; ?>', '<?php echo $map_marker; ?>');</script> 

由於某些原因,無論我添加哪個數字,縮放級別都不會在地圖上發生變化。

+0

請包括所有相關的代碼在這裏,而不是在外部頁面。 – Zeta

+0

有兩個問題,如果您不希望邊界改變,並且地圖有兩個必需參數(中心和縮放),則移除'map.fitBounds',則需要同時提供這兩個參數。發佈的代碼從不調用'addToMap',請提供一個[mcve]來演示您的問題。 – geocodezip

回答

0

這是因爲您的addToMap方法fitsBounds在執行時的單個點上。不管你的地圖是在初始化(例如縮放12),addToMap立即通過這些線路放大它在儘可能接近:

  if (map_bounds == null) { map_bounds = new google.maps.LatLngBounds(); } 
     map_bounds.extend(marker.getPosition()); 
     map.fitBounds(map_bounds); 

另外,不要使用字符串(如hybrid)指定mapTypeId(雖然它應該仍然有效)。谷歌的API明確規定(並告訴你使用),其常數

google.maps.MapTypeId.HYBRID