kopia lustrzana https://github.com/jakecoppinger/safe-cycling-map
Remove old parking code, improve red routes
rodzic
a7110eef7f
commit
e484e23299
21
src/api.ts
21
src/api.ts
|
@ -1,10 +1,9 @@
|
|||
import debounce from "debounce";
|
||||
import { LoadingStatusType, OverpassResponse, RawOverpassNode } from "./interfaces";
|
||||
import { LoadingStatusType, OverpassResponse} from "./interfaces";
|
||||
|
||||
import * as http from "https";
|
||||
import { addStreetLayers, drawMarkersAndCards, removeMarkers, removeStreetLayers } from "./drawing";
|
||||
import { wayToNode } from "./geo-utils";
|
||||
import { bicycleParking, safeCycleways } from "./overpass-requests";
|
||||
import { addStreetLayers, removeStreetLayers } from "./drawing";
|
||||
import { safeCycleways } from "./overpass-requests";
|
||||
|
||||
import osmtogeojson from 'osmtogeojson';
|
||||
|
||||
|
@ -66,17 +65,14 @@ async function fetchAndDrawMarkers(
|
|||
const northLat = bounds.getNorth();
|
||||
const eastLong = bounds.getEast();
|
||||
|
||||
let ads: OverpassResponse;
|
||||
let safeRoutes: OverpassResponse;
|
||||
|
||||
const overpassBounds = [southernLat, westLong, northLat, eastLong];
|
||||
const boundsStr = overpassBounds.join(",");
|
||||
const parkingOverpassQuery = bicycleParking(boundsStr);;
|
||||
const safeRoutesOverpassQuery = safeCycleways(boundsStr);;
|
||||
|
||||
console.log("Started POST request...");
|
||||
try {
|
||||
ads = (await getOSMData(parkingOverpassQuery));
|
||||
safeRoutes = await getOSMData(safeRoutesOverpassQuery);
|
||||
} catch (e) {
|
||||
console.log("Error:", e);
|
||||
|
@ -91,16 +87,5 @@ async function fetchAndDrawMarkers(
|
|||
removeStreetLayers(map);
|
||||
addStreetLayers(map, geoJson);
|
||||
|
||||
|
||||
setLoadingStatus("success");
|
||||
return;
|
||||
// removeMarkers(markers.current);
|
||||
|
||||
// const nodesAndWayCenters: RawOverpassNode[] = ads.elements
|
||||
// .map((item) => (item.type === "way" ? wayToNode(item, ads.elements) : item))
|
||||
// .filter((item) => item !== null)
|
||||
// .map((item) => item as RawOverpassNode)
|
||||
// .filter((item) => item.tags !== undefined);
|
||||
|
||||
// markers.current = await drawMarkersAndCards(map, nodesAndWayCenters);
|
||||
}
|
||||
|
|
|
@ -78,6 +78,8 @@ export function removeStreetLayers(map: mapboxgl.Map): void {
|
|||
}
|
||||
|
||||
export function addStreetLayers(map: mapboxgl.Map, geoJson: FeatureCollection<Geometry, GeoJsonProperties>) {
|
||||
/** Add below first vector layer */
|
||||
const layerToAddBefore = 'SharedUse';
|
||||
map.addSource('redRoads', {
|
||||
type: 'geojson',
|
||||
data: {
|
||||
|
@ -116,7 +118,7 @@ export function addStreetLayers(map: mapboxgl.Map, geoJson: FeatureCollection<Ge
|
|||
"line-width": 3,
|
||||
'line-opacity': 0.3
|
||||
},
|
||||
});
|
||||
}, layerToAddBefore);
|
||||
|
||||
map.addLayer({
|
||||
'id': 'orangeRoadsId',
|
||||
|
@ -128,7 +130,7 @@ export function addStreetLayers(map: mapboxgl.Map, geoJson: FeatureCollection<Ge
|
|||
"line-width": 3,
|
||||
'line-opacity': 0.5
|
||||
},
|
||||
});
|
||||
}, layerToAddBefore);
|
||||
|
||||
|
||||
// Add a new layer to visualize the polygon.
|
||||
|
@ -142,7 +144,7 @@ export function addStreetLayers(map: mapboxgl.Map, geoJson: FeatureCollection<Ge
|
|||
"line-width": 7,
|
||||
'line-opacity': 0.8
|
||||
},
|
||||
});
|
||||
},layerToAddBefore);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// TODO: Find the layer of the road labels for the maptiler background
|
||||
const layerToAddAfter = undefined;
|
||||
// const layerToAddAfter = 'greenRoadsId'; //undefined;
|
||||
|
||||
function addLayer(
|
||||
map: mapboxgl.Map,
|
||||
|
|
|
@ -12,6 +12,9 @@ export function isRedRoad(feature: Feature<Geometry, GeoJsonProperties>): boolea
|
|||
if (p === null) {
|
||||
return false;
|
||||
}
|
||||
if(p.highway === 'primary' && p.maxspeed === undefined) {
|
||||
return true;
|
||||
}
|
||||
if (p.maxspeed > 40) {
|
||||
return true;
|
||||
}
|
||||
|
@ -68,7 +71,7 @@ export function isGreenRoad(feature: Feature<Geometry, GeoJsonProperties>): bool
|
|||
if (p.highway === 'shared_lane') {
|
||||
return true;
|
||||
}
|
||||
if (p.bicycle === 'designated') {
|
||||
if (p.bicycle === 'designated' && p.highway === 'cycleway') {
|
||||
return true;
|
||||
}
|
||||
if (p.highway === 'living_street') {
|
||||
|
|
Ładowanie…
Reference in New Issue