Krótka odpowiedź
Metody ContainPoint pochodzą z żądania funkcji w 2012 roku , a dziś są nieco mylące.
Najlepszą odpowiedzią jest opis opiekuna ulotki Vladimira Agafonkina:
„layerPoint to tak naprawdę punkt względem warstwy mapy (div zawierający kafelki i znaczniki), a nie zewnętrzny kontener mapy. Potrzebny jest map.layerPointToContainerPoint. Ale zgadzam się, że nie ma wygodnej metody, aby uzyskać go natychmiast, więc zaplanuj to do następnej wersji ”.
Długa odpowiedź
Bardziej szczegółowo:
Podstawowymi publicznymi metodami konwersji zawartymi w Ulotce, choć rzadko stosowane przez twórców aplikacji, są L.Map.project(latlng [, zoom])
i L.Map.unproject(point [, zoom])
.
Mapy internetowe są podzielone na siatkę kafelków, z których każda ma taką samą liczbę pikseli. Przy wyższych poziomach powiększenia mapa jest podzielona na większą liczbę kafelków o odpowiedniej większej liczbie pikseli. Rozmiar piksela mapy zależy zatem od poziomu powiększenia.
Oznacza to, że jeśli masz do czynienia z oknem demonstracyjnym Ulotki w przeglądarce, wyjście L.Map.project` dla danego języka zmieni się tylko wtedy, gdy powiększysz i pomniejszysz.
Od najnowszej wersji Ulotki (0.7.3) definicja L.Map.latLngToLayerPoint
brzmi:
latLngToLayerPoint: function (latlng) {
var projectedPoint = this.project(L.latLng(latlng))._round();
return projectedPoint._subtract(this.getPixelOrigin());
}
Natomiast L.Map.latLngToContainerPoint
brzmi:
latLngToContainerPoint: function (latlng) {
return this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng)));
}
ze L.Map.layerPointToContainerPoint
zdefiniowanym jako:
layerPointToContainerPoint: function (point) {
return L.point(point).add(this._getMapPanePos());
}
Metoda mapy prywatnej _getMapPanePos()
zwraca przesunięcie między bieżącą pozycją mapy a jej pozycją, gdy została utworzona po raz pierwszy. Zmienia się to tylko podczas przesuwania mapy (nie podczas powiększania), więc różnica między warstwami pointPoint i containerPoint odpowiadającymi danym latlng polega na tym, że layerPoint jest pozycją latlng w kontenerze mapy <div>
z mapą w jego początkowej pozycji , podczas gdy containerPoint to bieżąca pozycja latlng w kontenerze mapy <div>
.