My map based on Leaflet and AngularJS is not loading correctly. I do not know what's going on but the maps tiles are not laid out as they should be.
This is the base map:

This is my code:
function setMapPosition(){
$scope.center = {
lat: 51.505,
lng: -0.09,
zoom: 8
};
$scope.defaults= {
scrollWheelZoom: false
};
$scope.tiles = 'openstreetmap';
}
This problem often occurs due to resizing of any parent container while the map is already initialized.
In order to tell the map that there was a resize you can call map.invalidateSize();.
It could also be that you didn't resize any parent container manually, then a possible solution would be to call map.invalidateSize(); after your document is ready.
To do this with the angular-leaflet-directive try the following inside your controller which injects leafletData.:
leafletData.getMap().then(function(map) {
map.invalidateSize(false);
});
If you are using leaflet directive for angularjs then
Check if your map container has an ng-cloak attribute. If it's there remove it.
Map not loading when ng-cloak presents
<div class="map-container" ng-cloak>
<leaflet class="map-container" markers="markers" lf-center="center" width="100%">
</leaflet>
</div>
Map is loading when ng-cloak is not present
<div class="map-container">
<leaflet class="map-container" markers="markers" lf-center="center" width="100%">
</leaflet>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With