Javascript 谷歌地图标记不居中
我正在使用Google Maps在一个隐藏的div下显示,该div在单击选项卡时切换,我有两个问题,可能它们相关:Javascript 谷歌地图标记不居中,javascript,google-maps,google-maps-markers,google-maps-api-2,Javascript,Google Maps,Google Maps Markers,Google Maps Api 2,我正在使用Google Maps在一个隐藏的div下显示,该div在单击选项卡时切换,我有两个问题,可能它们相关: 这张地图没有完全显示出来 标记在地图中不居中,它位于地图的左上角 我正在粘贴代码,请指导我哪里有错误或任何建议 var map = new GMap2(document.getElementById(mapid)); if( maptype == 'G_NORMAL_MAP' ) { map.setCenter(new GLatLng(st
var map = new GMap2(document.getElementById(mapid));
if( maptype == 'G_NORMAL_MAP' )
{
map.setCenter(new GLatLng(startLatitude,startLongitude ), 6);
map.addControl(new GLargeMapControl());
}
else if( maptype == 'G_SATELLITE_MAP' )
{
map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
map.addControl(new GLargeMapControl());
map.setMapType(G_SATELLITE_MAP);
map.setUIToDefault();
map.enableRotation();
}
else if( maptype == 'G_AERIAL_MAP' )
{
map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
map.addControl(new GLargeMapControl());
map.setMapType(G_AERIAL_MAP);
map.setUIToDefault();
map.enableRotation();
}
else if( maptype == 'G_AERIAL_HYBRID_MAP' )
{
map.setCenter(new GLatLng(startLatitude,startLongitude ), 18);
map.addControl(new GLargeMapControl());
map.setMapType(G_AERIAL_HYBRID_MAP);
map.setUIToDefault();
map.enableRotation();
}
// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
var point = new GLatLng(startLatitude, startLongitude);
map.setCenter(bounds.getCenter());
map.addOverlay(new GMarker(point));
尝试为标记添加:
位置:map.getCenter()
,以便标记在地图上居中完全定义映射div的大小,或对构造函数使用可选的“size”参数:
map = new GMap2(document.getElementById(mapid),{size:new GSize(510,200)});
或者在打开选项卡后对地图对象运行checkResize()方法,然后尝试添加
var zoom = map.getZoom();
var center = map.getCenter();
map.checkResize();
map.setCenter(center,zoom);
切换map div.之后,此代码每次呈现标记中心对齐的google地图
var lattitude = data.getLatitude ;
var longitude = data.getLongitude;
var pointLatLong = new google.maps.LatLng(lattitude,longitude);
var pointOptions = {
zoom: 10,
center: pointLatLong,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map-canvas"), pointOptions);
var pointMarker = new google.maps.Marker({
position: pointLatLong,
title: ""
});
pointMarker.setMap(map);
google.maps.event.addListenerOnce(map, "idle", function () {
google.maps.event.trigger(map, "resize");
map.setCenter( pointLatLong );
});
参考:您的语法是API V2,它已被弃用,可能随时停止工作。考虑升级到当前版本(v3)。我不能在这个阶段,我必须完成这项工作,现在你可以发布一个链接到一个地图(或一个JSFIDLE)来显示这个问题(或者你在上面尝试过并且没有用过)?不知道你在用什么浏览器,但是在Chrome中它什么都不做。我在要初始化的body onload调用中得到一个可能不相关的“initialize”未定义,然后从v2配额服务中得到一个“加载资源失败:服务器响应状态为403(禁止)”。看起来您正在使用的密钥未对此域启用。chromer/firfox 15.0,即,尽管如此,初始化()与映射无关,在单击映射选项卡时调用脚本类型错误:map.checkResize不是函数