我在同一个网页上制作了两张地图,假设一次只显示一张地图。 (例如,如果我的位置是A然后显示map1,如果位置是B然后显示map2。更改地图工作正常。我现在唯一的问题是锚点只出现在一张地图中。请帮助。
我的Javascript
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
function initialize() {
var myLatlng = new google.maps.LatLng(4.584007, 101.090027);
var mapOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var myLatlng1 = new google.maps.LatLng(3.040517, 101.704167);
var mapProp2 = {
center: myLatlng1,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map2 = new google.maps.Map(document.getElementById("googleMap"), mapProp2);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Location'
});
var marker1 = new google.maps.Marker({
position: myLatlng1,
map: map2,
title: 'Location'
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<script>
var originalNavClasses;
function toggleNav() {
var elem = document.getElementById('navigation_list');
var classes = elem.className;
if (originalNavClasses === undefined) {
originalNavClasses = classes;
}
elem.className = /expanded/.test(classes) ? originalNavClasses : originalNavClasses + ' expanded';
}
</script>
我的If .. Else声明
%If Request.QueryString("location") = "A" Then %>
<a href="geo:http://maps.google.com/?q=3.040517,101.704167,15z"><img src="img/button_directions.png" border="0" /></a>
<%Else %>
<a href="geo:http://maps.google.com/?q=4.584007,101.090027,15z"><img src="img/button_directions.png" border="0" /></a>
<%End If%>
答案 0 :(得分:-1)
由于您一次只显示一个地图,因此您应该避免使用两个地图实例,它们非常繁重,并且可能导致这种混乱。仅在需要时使用一个实例更改其选项。您可以在初始化后更改地图实例的任何参数。
现在我看到类似的东西可以帮助你:
var myLatlng = new google.maps.LatLng(4.584007, 101.090027);
var myLatlng1 = new google.maps.LatLng(3.040517, 101.704167);
var mapOptions = {
zoom: 16,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
title: 'Location'
});
// Then you can set the position of the marker and the center of the map
function changeLocation(someCondition){
if(someCondition){
marker.setPosition(myLatlng1);
map.setCenter(myLatlng1);
}else{
marker.setPosition(myLatlng);
map.setCenter(myLatlng);
}
}
如果想要的行为是要记住两种不同的地图状态,那么您可以存储它们
var mapPreviousStatus = {
center: map.getCenter(),
zoom: map.getZoom(),
mapTypeId : map.getMapTypeId()
// Any other parameter that you must remember
};
以这种方式工作需要更多工作,但效率更高。
请参阅Google Maps Javascript API Reference和Map
的Marker