映射不显示if if else的锚点

时间:2014-12-16 07:39:50

标签: javascript google-maps google-maps-api-3

我在同一个网页上制作了两张地图,假设一次只显示一张地图。 (例如,如果我的位置是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%>

1 个答案:

答案 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 ReferenceMap

Marker