Var Bounds не работает на моих картах Google - PullRequest
1 голос
/ 28 сентября 2011

У меня проблема с получением границ при работе с моей картой Google.Все маркеры указывают на правильные координаты, но когда они появляются на карте, автоматический масштаб не корректируется должным образом.Может кто-нибудь, пожалуйста, помогите мне с моими границами, пожалуйста.

var companyLocale = new google.maps.LatLng(33.206060, -117.111951);
var noGeo = new google.maps.LatLng(40.69847032728747, -73.9514422416687);


function initialize() {
  var myOptions = {
    zoom: 14,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

   <!-------------------------------USER MARKERS-------------------> 
  var usericon = new google.maps.MarkerImage(
    'images/userimage.png',
    new google.maps.Size(48,48),
    new google.maps.Point(0,0),
    new google.maps.Point(24,48)
  );

  var usershadow = new google.maps.MarkerImage(
    'images/usershadow.png',
    new google.maps.Size(76,48),
    new google.maps.Point(0,0),
    new google.maps.Point(24,48)
  ); 
  <!-------------------------------COMP MARKERS------------------->
  var icon = new google.maps.MarkerImage(

    'images/image.png',
    new google.maps.Size(48,48),
    new google.maps.Point(0,0),
    new google.maps.Point(24,48)
  );

  var shadow = new google.maps.MarkerImage(
    'images/shadow.png',
    new google.maps.Size(76,48),
    new google.maps.Point(0,0),
    new google.maps.Point(24,48)
  );

function toggleBounce() {

    if (marker.getAnimation() != null) {
      marker.setAnimation(null);
    } else {
      marker.setAnimation(google.maps.Animation.BOUNCE);
    }
  }

  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  // Safari supports the W3C Geolocation method
  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

      var bounds = new google.maps.LatLngBounds();
      var placeMarker = new google.maps.Marker({
        position: initialLocation,
        icon: usericon,
        shadow: usershadow,
        animation: google.maps.Animation.DROP,
        map: map
      });
      map.setCenter(initialLocation);

       var bounds = new google.maps.LatLngBounds();
       var Marker = new google.maps.Marker({
        position: companyLocale,
        icon: icon,
        shadow: shadow,
        animation: google.maps.Animation.DROP,
        map: map
      });

       google.maps.event.addListener(Marker, 'click', function() {
        window.location = "main-export/main.html";
 });
       google.maps.event.addListener(placeMarker, 'click', function() {
        window.location = "main-export/loyalty.html";
 });

    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });
  } else {
    // Browser doesn't support Geolocation
    handleNoGeolocation();
  }

  function handleNoGeolocation() {
    initialLocation = noGeo;
    map.setCenter(initialLocation);
  }
  bounds.extend(myLatLng);
    map.fitBounds(bounds);
}

1 Ответ

1 голос
/ 09 ноября 2011

У вас есть bounds.extend(myLatLng);, но нигде не создается myLatLng.Кажется, у вас есть только два маркера, поэтому вам просто нужно вызывать границы дважды, по одному разу для каждого значения.

Заменить bounds.extend(myLatLng); на

bounds.extend(companyLocale);
bounds.extend(initialLocation);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...