以下java脚本基本上在地图上导入KML图层文件,并在html 5中使用地理位置显示用户的当前位置。
问题在于它缩放到用户的当前位置。我不希望这种情况发生,我仍然希望焦点在KML层路线而不是用户的当前位置。
var map;
function initialize() {
var abby = new google.maps.LatLng(49.051078,-122.314221);
var mapOptions = {
zoom: 11,
center: abby
}
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var ctaLayer = new google.maps.KmlLayer({
url:urllink,
preserveViewport: true
});
ctaLayer.setMap(map);
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
// map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
google.maps.event.addDomListener(window, 'load', initialize);
答案 0 :(得分:0)
注释掉这一行:
map.setCenter(pos);
将中心设置为用户的位置。
更新:您必须添加infowindow选项:
disableAutoPan: true
禁用打开时自动平移。 默认情况下,信息窗口会平移地图,以便在打开时完全可见。
答案 1 :(得分:0)
将{preserveViewport: true}
移至KmlLayer。
var ctaLayer = new google.maps.KmlLayer({
url:urllink
});