谷歌地图缩放级别和地图类型不起作用



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

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

出于某种原因,无论我添加什么数字,地图上的缩放级别都不会改变。

这是因为您的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

最新更新