We are using Leaflet already on one of our site but now we are migrating to Angular. Now we are trying to reproduce it using Ngx-Leaflet.
But we don't have the country borders...
What we have right now:
In the component.html
<div class="col col-md-8">
<div style="height: 700px; padding: 0; width: 100%;" leaflet [(leafletZoom)]="leafletZoom"
[(leafletCenter)]="leafletCenter" [leafletMaxZoom]="leafletMaxZoom" [leafletMinZoom]="leafletMinZoom"
[leafletOptions]="leafletOptions"
[leafletLayers]="leafletLayers">
</div>
</div>
In the component.ts in the ngOnInit()
this.leafletZoom = 4;
this.leafletMaxZoom = 4;
this.leafletMinZoom = 4;
this.leafletCenter = latLng([this.lat, this.lng]);
this.geoJSONsOption = { style: { 'color': '#ff7800', 'weight': 5, 'opacity': 0.65 } };
this.projectMapJsonService.getProjectMapJson().subscribe((data: any) => {
this.geoJSONs = data;
// console.log(this.geoJSONs);
let defaultBaseLayer = tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
});
let defaultOverlay = geoJSON(this.geoJSONs, this.geoJSONsOption);
this.leafletLayers = [
defaultBaseLayer,
defaultOverlay
];
});
this.leafletOptions = {};
The GeoJson is like
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"name":"Afghanistan","iso":"AF","label":"1","totalentries":"430","show_on_map":true},"geometry":{"type":"Point","coordinates":["65","33"]}},...
I have difficulties finding how to convert some of the code E.g.
var countries_options = {
insets: true,
style: {
fillColor: getColor(feature.properties.label),
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7,
visible: false
},
onEachFeature: function (feature2, layer) {
layer.on({
mouseover: function (e) {
info.update(feature.properties);
},
mousemove: function (e) {
var popup = L.popup({
offset: new L.Point(120, 0),
closeButton: false,
className: 'popuphomemap'
})
.setLatLng(e.latlng)
.setContent('Click to have the list of the projects')
.openOn(homeMap);
},
mouseout: function () {
info.update();
},
click: function () {
info.click(feature.properties);
}
});
}
}
L.wt.countries([{
"level": 0,
"countries": [cca2]
}], countries_options).addTo(homeMap);
I would be grateful if somebody can support me or share code with such features.