不确定这里有什么问题。地图加载良好并添加自定义标记,但缩放级别不起作用,也不是地图类型。
<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 :(得分: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