Google地图缩放级别和地图类型无效

时间:2017-08-08 20:43:20

标签: google-maps google-maps-api-3

不确定这里有什么问题。地图加载良好并添加自定义标记,但缩放级别不起作用,也不是地图类型。

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

出于某种原因,无论我添加什么号码,缩放级别都不会在地图上发生变化。

1 个答案:

答案 0 :(得分: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(尽管它仍应有效)。 Google的API明确提供(并告诉您使用)他们的常量

google.maps.MapTypeId.HYBRID