2011-03-19 21 views
12

Varsayılan olarak belirli bir boylam/enlem üzerinde bir V3 haritası yükleme ve merkezleme var. Yüklendikten sonra, kullanıcı o noktaya yol tarifi almak için adreslerini girebilir. Bu olduğunda, harita solunda bir yönlendirme kutusu barındırmak için yeniden boyutlandırılır. Bu nedenle, rota harita penceresinde merkez dışıdır. Mantıksal olarak çalışması gerektiğini düşündüğüm şu kodu denedim, ama boşuna.Yol tarifi oluşturulduktan sonra merkezde bir V3 Google Map

Yeni gerçekleşme: Pencereyi herhangi bir şekilde yeniden boyutlandırırsam, beklendiği gibi çalışmaya başlar.

Sorun bulundu: Harita kapsayıcısını yeniden boyutlandırdıktan sonra google.maps.event.trigger(map, 'resize')'u tetiklemem gerekiyor.

directionsService.route(query, function(result,status) { 
    if (status === google.maps.DirectionsStatus.OK) { 
     // This sets the directions container to display:block and resizes the map 
     document.getElementById('map-container').className = "directions"; 
     directions.setDirections(result); 
     var bounds = result.routes[0].bounds; 
     map.fitBounds(bounds); 
     map.setCenter(bounds.getCenter()); 
    } else { 
     alert(""); 
    } 
});
+0

fitBounds'u çağırdığınızda LatLngBounds'u temel almalı, bu nedenle setCenter – kjy112

+0

Evet'e gerek duymamalısınız, setCenter() öğesini son bir hendek çabasına ekledim. Beklendiği gibi ya da onsuz beklendiği gibi ortalanmıyor. – Justin

+0

, "yeniden boyutlandır" harita bölümünü tamamen yanlış. Çalıştığına sevindim – kjy112

cevap

1

Zaten söyleyeceğim cevabı buldunuz. Yeniden boyutlandırma olayı, harita kabını (veya büyük olasılıkla ebeveyninin) değiştirdiğinizde doğru olması için çok önemlidir. Benim durumumda, iki sekme arasında (harita ve yol tarifleri) dolaşıyordum. Öncelikle harita harita sekmesinde doğru bir şekilde görünecektir, ancak haritaya yönelip haritaya geri dönme, görüntü eğrilerine neden olmuştur.

Haritanız bir köşede yalnızca küçük bir çini gösteriyorsa (durumumun sol üst köşesinde) boşluk bırakıldığında, yeniden boyutlandırma tetikleyicisini ateşlemeniz gerekir.

İlgili konular