你好:我在我的谷歌地图上取得了进展(见我以前的帖子:谷歌地图 API v3 上缺少 KML 标记:怎么了?),但我现在卡住了,希望得到帮助。
我的自定义样式地图从包含大约 20 个地标的 KML 文件中提取。
出于设计原因,我希望我的地标在锚点的右侧打开,而不是默认的顶部/中心。我试图寻找一种简单的方法来做到这一点,但徒劳无功;我最接近的是:选择另一个 KML 层时 infowindows 保持活动状态的问题 - Google Maps API V3,我无法为我工作。
这是我正在寻找的示例:http: //nationaltreasures.aircanada.com/(其 InfoWindows 向右打开)。
我想我需要抑制默认的 InfoWindow,创建自己的提取 KML 数据的信息窗口,然后为我的自定义 InfoWindow 指定一个 pixelOffset,但我不知道该怎么做。
先感谢您!
function initialize() {
var styles = [ ]; // Styles removed to simplify code
var styledMap = new google.maps.StyledMapType(styles,
{name: "HEPAC"});
var mapOptions = {
zoom: 7,
center: new google.maps.LatLng(46.69504, -67.69751),
panControl: false,
mapTypeControl: false,
streetViewControl: false,
noClear: true,
zoomControlOptions: {
position: google.maps.ControlPosition.TOP_RIGHT
},
mapTypeControlOptions: {
mapTypeIds: ['map_style', google.maps.MapTypeId.ROADMAP]
}
};
google.maps.visualRefresh = true;
var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);
map.mapTypes.set('map_style', styledMap);
map.setMapTypeId('map_style');
var opt = { minZoom: 7, maxZoom: 9 }; // Sets minimum & maximum zoom level
map.setOptions(opt);
var ctaLayer = new google.maps.KmlLayer({
url: 'http://hepac.ca/wp-content/mapping/wellnessnetworksl.kml?f=3',
preserveViewport: true,
});
ctaLayer.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);