【发布时间】:2012-09-03 05:51:54
【问题描述】:
我在使用fitBounds 地图方法的地图上遇到问题,它应该提供适当的缩放并将地图居中并为其提供一个纬度数组。这是代码:
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?sensor=false">
</script>
<div id="map_canvas">
<script type="text/javascript">
var map;
var bounds = new google.maps.LatLngBounds(null);
function initialize() {
var mapOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
<?php
foreach ($this->getProductCollection() as $_e):
$event = Mage::getModel('catalog/product')->load($_e->getId());
?>
var loc = new google.maps.LatLng("<?php echo $event->getEventLocationLatitude(); ?>","<?php echo $event->getEventLocationLongitude(); ?>");
bounds.extend(loc);
addMarker(loc, '<?php echo $event->getName(); ?>', "active");
bounds.extend(loc);
<?php endforeach; ?>
map.fitBounds(bounds);
map.panToBounds(bounds);
}
function addMarker(location, name, active) {
var marker = new google.maps.Marker({
position: location,
map: map,
title: name,
status: active
});
}
jQuery.noConflict();
jQuery(document).ready(function(){
initialize();
});
</script>
标记已正确放置在地图上,但我得到了可用的最大缩放:
有什么帮助吗?
【问题讨论】:
-
panToBounds 调用有点多余,但我想这只是试图让它工作。你也调用 bounds.extend() 两次,但它不应该再次成为问题。当您检查 bounds 时,它是否包含正确的值?
-
忽略php,只看浏览器看到的。在浏览器中“查看源代码”,然后发布该代码。
标签: javascript google-maps google-maps-api-3 google-maps-markers