Refactor common track loading parts (#312)
- common track style - TracksLoader now also adds points as POIs - RouteLoaderConverter does not add route points as POI
This commit is contained in:
parent
fa59a44a5e
commit
5ad12a7c68
4 changed files with 98 additions and 35 deletions
|
|
@ -257,11 +257,7 @@ BR.routeLoader = function(map, layersControl, routing, pois) {
|
|||
},
|
||||
|
||||
addTrackOverlay: function(geoJSON) {
|
||||
this._trackLayer = L.geoJSON(geoJSON, {
|
||||
filter: function(geoJsonFeature) {
|
||||
return !(geoJsonFeature.type == 'Feature' && geoJsonFeature.geometry.type == 'Point');
|
||||
}
|
||||
}).addTo(map);
|
||||
this._trackLayer = L.geoJSON(geoJSON, BR.Track.getGeoJsonOptions(layersControl)).addTo(map);
|
||||
|
||||
layersControl.addOverlay(this._trackLayer, this._layerName);
|
||||
|
||||
|
|
@ -320,15 +316,7 @@ BR.routeLoader = function(map, layersControl, routing, pois) {
|
|||
if (!this._bounds) map.fitBounds(this._bounds);
|
||||
|
||||
if (this._options.showPointAsPoi) {
|
||||
turf.featureEach(this._currentGeoJSON, function(feature, idx) {
|
||||
if (turf.getType(feature) == 'Point') {
|
||||
var coord = turf.getCoord(feature);
|
||||
var latlng = L.GeoJSON.coordsToLatLng(coord);
|
||||
var name = '';
|
||||
if (feature.properties && feature.properties.name) name = feature.properties.name;
|
||||
pois.addMarker(latlng, name);
|
||||
}
|
||||
});
|
||||
BR.Track.addPoiMarkers(pois, this._currentGeoJSON);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,16 @@
|
|||
BR.tracksLoader = function(map, layersControl, routing) {
|
||||
BR.tracksLoader = function(map, layersControl, routing, pois) {
|
||||
// proxy to L.geoJSON factory function, to get hold of raw GeoJSON object
|
||||
var createGeoJsonLayer = function(geojson, options) {
|
||||
BR.Track.addPoiMarkers(pois, geojson);
|
||||
|
||||
return L.geoJSON(geojson, options);
|
||||
};
|
||||
|
||||
TracksLoader = L.Control.FileLayerLoad.extend({
|
||||
options: {
|
||||
layer: L.geoJson,
|
||||
layerOptions: {
|
||||
style: function(geoJsonFeature) {
|
||||
var currentLayerId = layersControl.getActiveBaseLayer().layer.id;
|
||||
return {
|
||||
color: currentLayerId === 'cyclosm' ? 'yellow' : 'blue',
|
||||
weight: 4
|
||||
};
|
||||
},
|
||||
interactive: false,
|
||||
pointToLayer: function(geoJsonPoint, latlng) {
|
||||
return L.marker(latlng, {
|
||||
interactive: false,
|
||||
opacity: 0.7,
|
||||
// prevent being on top of route markers
|
||||
zIndexOffset: -1000
|
||||
});
|
||||
}
|
||||
},
|
||||
// `layer` allows to use a customized version of `L.geoJson` with the same signature
|
||||
layer: createGeoJsonLayer,
|
||||
layerOptions: BR.Track.getGeoJsonOptions(layersControl),
|
||||
addToMap: false,
|
||||
// File size limit in kb (default: 1024) ?
|
||||
fileSizeLimit: 1024,
|
||||
|
|
@ -117,6 +108,7 @@ BR.tracksLoader = function(map, layersControl, routing) {
|
|||
error: err && err.message ? err.message : err
|
||||
})
|
||||
);
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
return tracksLoaderControl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue