我正在尝试在网站上获取自定义谷歌地图API,问题是地图未显示完整,只显示地图的一部分。
下面是代码:
js代码:
$(document).ready(function(){
var map=null;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(24.3573, 54.4636),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var currCenter = map.getCenter();
google.maps.event.trigger(map, 'resize');
map.setCenter(currCenter);
map.setZoom(14);
var markerOptions = {
position: new google.maps.LatLng(24.3573, 54.4636),
map: map
};
var marker = new google.maps.Marker(markerOptions);
marker.setMap(map);
var infoWindowOptions = {
content: '<b>Compnay Name</b><br> Is Here!'
};
var infoWindow = new google.maps.InfoWindow(infoWindowOptions);
infoWindow.open(map, marker);
};
google.maps.event.addDomListener(window, 'load', initialize);
});
HTML代码:
<div class="container">
<h1>Location Map</h1>
<p></p>
<div id="map-canvas"></div>
</div>
css代码:
.container {width: 100%; height: 100%;}
.container #map-canvas {
width: 500px;
height: 250px;
margin: 0;
border: 1px solid rgb(225, 225, 225);}
.map h2{
font-size: 16px;
font-weight: bold;
padding: 20px 0 6px 0;}
请告诉我我做错了什么?
我听说'google.maps.event.trigger(map,'resize');'通常做的伎俩,但在我的代码中它似乎不起作用,也许我不是在正确的地方..请帮助。
谢谢。
答案 0 :(得分:2)
使用tab jQuery插件时遇到了同样的问题。我在文档就绪时调用initialize()函数($(document).ready(function(){initialize();}))。 当map标签处于活动状态并且问题消失时,我尝试调用initialize()函数。这只是我的经验。 祝你好运!
约翰尼
答案 1 :(得分:1)
@Bipin:我有解决方案来解决这个错误
在Js代码中添加以下功能
function resizeMap(m) {
x = m.getZoom();
c = m.getCenter();
google.maps.event.trigger(m, 'resize');
m.setZoom(x);
m.setCenter(c);
};
//使用m是&#34; map&#34;
然后在
之后按下该功能google.maps.event.addDomListener(window, 'load', initialize);
resizeMap(map);
希望解决方案可以提供帮助。
答案 2 :(得分:0)
我有同样的问题,但在我的情况下,地图应该弹出。
我通过使用setTimeout
javascript函数来等待弹出动画完成,然后我调用了地图初始化函数来克服它。我希望这会有所帮助。
此外,您的地图看起来扭曲了。检查此问题的解决方案: Google Maps api v3 tools: visual distortions?