Google maps api 3 用于显示web的Google地图API(类似于Google.plus服务巡更)
我正在尝试做类似的事情: 即我的目标是:Google maps api 3 用于显示web的Google地图API(类似于Google.plus服务巡更),google-maps-api-3,customization,google-maps-styled,Google Maps Api 3,Customization,Google Maps Styled,我正在尝试做类似的事情: 即我的目标是: 限制地图的范围和缩放(可能会在用户滚动超出范围后使地图始终滚动回中心) 创建包含html的覆盖图 有人认为第1点的解决方案比:?更好吗?我想你在#1中寻找的秘密是imageMapTypeOptions中的minZoom和maxZoom设置。文件载于 at的解决方案使用了不推荐的Google Maps API v2,但at的页面使用了Google Maps API v3,因此他们可能采用了完全不同的方式 下面是Google页面的基本操作方式: functi
有人认为第1点的解决方案比:?更好吗?我想你在#1中寻找的秘密是
imageMapTypeOptions
中的minZoom
和maxZoom
设置。文件载于
at的解决方案使用了不推荐的Google Maps API v2,但at的页面使用了Google Maps API v3,因此他们可能采用了完全不同的方式
下面是Google页面的基本操作方式:
function initMap() {
var mapOptions = {backgroundColor: MAP_BACKGROUND_COLOR,
center: new google.maps.LatLng(MAP_INIT_LAT, MAP_INIT_LNG),
zoom: 6,
zoomControl: true,
zoomControlOptions:{
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
panControl: true,
panControlOptions: {
position: google.maps.ControlPosition.LEFT_BOTTOM
},
mapTypeControl: false,
mapTypeControlOptions: {
mapTypeIds: [MAP_TYPE_NAME]
},
disableDoubleClickZoom: true
};
map = new.google.maps.Map(document.getElementById("mapCanvas"), mapOptions);
var imageMapTypeOptions = {getTileUrl: getTileUrl,
tileSize: new google.maps.Size(MAP_TILE_SIZE, MAP_TILE_SIZE),
isPng: false,
minZoom: MIN_ZOOM,
maxZoom: MAX_ZOOM,
name: MAP_TYPE_NAME
};
map.mapTypes.set(MAP_TYPE_NAME, new google.maps.ImageMapType(imageMapTypeOptions));
map.setMapTypeId(MAP_TYPE_NAME);
initMarkers();
google.maps.event.addListener(map, "zoom_changed", onZoomChanged);
mapIdleListener = google.maps.event.addListener(map, "idle", onMapLoaded);
onZoomChanged()
}
function onZoomChanged() {
featureButtonsActivated && closeInfobox();
var a = map.getZoom();
for (id in section)
section[id].type != TYPE_FEATURE && (a >= section[id].zoom.min && a <= section[id].zoom.max ? createMarker(id) : removeMarker(id))
}
function getTileUrl(point, number) {
return getTilesFrom('http://www.gstatic.com/plus/demo/', point, number)
}
function getTilesFrom(cdnUrl, point, number) {
point = getNormalizedCoord(point, number);
if (!point)
return null;
cdnUrl = cdnUrl + "/" + number + "-" + point.x + "-" + point.y + ".jpg";
switch (number) {
case 2:
if (point.y <= 0 || point.y >= 3)
cdnUrl = WHITE_TILE_PATH;
break;
case 3:
if (point.y <= 1 || point.y >= 6)
cdnUrl = WHITE_TILE_PATH;
break;
case 4:
if (point.y <= 4 || point.y >= 11)
cdnUrl = WHITE_TILE_PATH;
break;
case 5:
if (point.y <= 10 || point.y >= 22)
cdnUrl = WHITE_TILE_PATH;
break;
case 6:
if (point.y <= 21 || point.y >= 43)
cdnUrl = WHITE_TILE_PATH
}
return cdnUrl;
}
函数initMap(){
var mapOptions={backgroundColor:MAP\u BACKGROUND\u COLOR,
中心:新的google.maps.LatLng(MAP_INIT_LAT,MAP_INIT_LNG),
缩放:6,
动物控制:对,
ZoomControl选项:{
样式:google.maps.ZoomControlStyle.LARGE,
位置:google.maps.ControlPosition.LEFT_底部
},
泛控制:对,
全控选项:{
位置:google.maps.ControlPosition.LEFT_底部
},
mapTypeControl:false,
mapTypeControlOptions:{
MapTypeId:[地图类型名称]
},
禁用双击缩放:真
};
map=new.google.maps.map(document.getElementById(“mapCanvas”)、mapOptions);
var imageMapTypeOptions={getTileUrl:getTileUrl,
tileSize:新的google.maps.Size(MAP\u TILE\u Size,MAP\u TILE\u Size),
isPng:错,
最小缩放:最小缩放,
最大缩放:最大缩放,
名称:地图类型名称
};
map.mapTypes.set(映射类型名称,新的google.maps.ImageMapType(imageMapTypeOptions));
map.setMapTypeId(映射类型名称);
初始化标记();
google.maps.event.addListener(映射,“zoom_changed”,onZoomChanged);
mapIdleListener=google.maps.event.addListener(映射,“空闲”,未加载);
onZoomChanged()
}
函数onZoomChanged(){
功能按钮已激活&关闭信息框();
var a=map.getZoom();
用于(第节中的id)
节[id]。类型!=类型\功能&&(a>=节[id]。zoom.min&&a