地图不显示锚点,否则

Map not showing anchor with if else

本文关键字:否则 显示 地图      更新时间:2023-09-26

我在同一网页上制作了两张地图,假设一次只显示一张地图。(例如,如果我的位置是 A,则显示 map1,如果位置是 B,则显示 map2。 更改地图工作正常。 我现在唯一的问题是锚点只出现在一张地图中。请帮忙。

我的爪哒语

<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 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%>

由于您一次只显示一张地图,因此您应该真正避免使用两个地图实例,它们非常繁重,可能会导致这种混乱。仅使用一个实例在需要时更改其选项。在映射实例初始化后,您几乎可以更改其任何参数。

现在我看到这样的东西可以帮助你:

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 参考