Kısa cevap
ContainerPoint yöntemleri 2012'deki bir özellik isteğinden başlar ve bugün biraz kafa karıştırıcıdır.
En iyi cevap Leaflet sürdürücü Vladimir Agafonkin'in açıklaması:
"layerPoint aslında dış harita kapsayıcı değil, harita katmanına (fayans ve işaretçileri içeren div) göre bir noktadır. İhtiyacınız olan şey map.layerPointToContainerPoint. Ama bunu hemen almak için uygun bir yöntem olmadığını kabul ediyorum, bu yüzden bunu planlamak sonraki sürüm için. "
Uzun cevap
Daha ayrıntılı olarak:
Nadiren uygulama geliştiricileri tarafından kullanılan her ne kadar broşürü çekirdek halka dönüşüm yöntemleri, vardır L.Map.project(latlng [, zoom])
ve L.Map.unproject(point [, zoom])
.
Web haritaları, her biri aynı sayıda piksele sahip bir karo ızgarasına bölünür. Daha yüksek yakınlaştırma seviyelerinde, harita karşılık gelen daha fazla sayıda pikselle daha fazla sayıda karoya bölünür. Böylece haritanın piksel boyutu yakınlaştırma düzeyine bağlıdır.
Bu, tarayıcınızda bir Leaflet demo penceresi ile uğraşıyorsanız, belirli bir latlng için L.Map.project` çıktısının yalnızca yakınlaştırma ve uzaklaştırma yaptığınızda değişeceği anlamına gelir.
Leaflet'in (0.7.3) son sürümünden itibaren L.Map.latLngToLayerPoint
okumaların tanımı :
latLngToLayerPoint: function (latlng) {
var projectedPoint = this.project(L.latLng(latlng))._round();
return projectedPoint._subtract(this.getPixelOrigin());
}
Aksine, şunu L.Map.latLngToContainerPoint
okur:
latLngToContainerPoint: function (latlng) {
return this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng)));
}
ile L.Map.layerPointToContainerPoint
tanımlanmış:
layerPointToContainerPoint: function (point) {
return L.point(point).add(this._getMapPanePos());
}
Özel harita yöntemi , geçerli harita konumu ile ilk oluşturulduğu konum arasındaki sapma değerini_getMapPanePos()
döndürür . Bu yalnızca bir harita kaydırma sırasında değişir (yakınlaştırma sırasında değil), bu nedenle belirli bir latlng'e karşılık gelen layerPoint ve containerPoint arasındaki fark, layerPoint'in harita kapsayıcısındaki haritanın başlangıç konumunda bulunduğu latmanın konumu olmasıdır . containerPoint, harita kapsayıcısındaki latlng'in geçerli konumudur .<div>
<div>