2016-06-27 8 views
5

Ben Mapbox olan el broşürü kullanıyorum ve böylece haritanın görünümünü ayarlamak istiyorum:broşürü - Fitbounds ve tutmak merkezi

  1. tüm belirteçler merkezi belirli ayarlandığında
  2. görebilir point

SetView ve fitbounds ile her bir noktayı ayrı ayrı yapmak kolaydır, ancak setView, sınırları değiştirdiğinden ve fitBounds'un merkezi değiştirdiğinden, her ikisinin de aynı anda nasıl olacağını bilmiyorum. Bir merkez ve yakınlaştırma tanımlamak bir çözüm olabilir; ancak tüm yakınlaştırma noktalarının hangi görünürlüğe erişmesine izin vereceğini nasıl bilebilirim?

DÜZENLEME

Ben IvanSanchez önerdiği çözüm uygulanan ve beklendiği gibi çalışır:

let ne=leafletBounds.getNorthEast(); 
let sw=leafletBounds.getSouthWest(); 
let neSymetric=[ne.lat + (center.lat - ne.lat)*2, ne.lng + (center.lng - ne.lng)*2]; 
let swSymetric=[sw.lat +(center.lat - sw.lat)*2, sw.lng + (center.lng - sw.lng)*2]; 
leafletBounds.extend(L.latLngBounds(swSymetric, neSymetric)); 

cevap

3

senin sınırlarını alın ve istediğiniz centerpoint boyunca nokta simetrisini uygulanarak ikinci bir L.Bounds örneği oluşturun. Orijinal sınırları ve simetrik sınırları içeren yeni bir L.Bounds oluşturun. Bununla fitBounds() çalıştırın.

+0

Teşekkür ederim, bu kolay ve verimli bir çözüm! – DevLR

0

Bunun için başka bir çözüm buldum. Haritanızı fitBound() ile ayarladıktan sonra map.panTo ([lat, lng]) öğesini çağırabilirsiniz. VueJ'leri kullanıyorum ve bunu mounted() yaşam döngüsü kancasında arıyorum.

Bir kullanıcının yerini ve aynı zamanda coğrafi bir özelliği görebilmeniz için sınırlar uyguluyordum, ancak panTo kullanıyorum, bu yüzden kullanıcının gerçek konumu fitBounds'tan sonra haritanın merkezinde. Şimdiye kadar sorunsuz çalışıyor gibi görünüyor.