mapboxHelper.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import mapboxToken from "./../config/mapboxToken.js";
  2. export const mapStyles = {
  3. "light": "mapbox://styles/mapbox/light-v9",
  4. "bright": "mapbox://styles/mapbox/bright-v9",
  5. "dark": "mapbox://styles/mapbox/dark-v9",
  6. "basic": "mapbox://styles/mapbox/basic-v9",
  7. "outdoor": "mapbox://styles/mapbox/outdoors-v10"
  8. }
  9. export function getRoute(lng, lat){
  10. let pathCopy = this.state.path.slice();
  11. var end = [lng, lat];
  12. if (this.state.path.length < 1){
  13. pathCopy.push(end)
  14. this.setState({path: pathCopy})
  15. this.getDistance()
  16. } else {
  17. var start = this.state.path[this.state.path.length-1];
  18. var baseUrl = "https://api.mapbox.com/directions/v5/mapbox/"
  19. var url = baseUrl + "walking/" + start[0] + "," + start[1] + ";" + end[0] + "," + end[1] + "?alternatives=true&geometries=geojson&steps=true&access_token=" + mapboxToken;
  20. fetch(url)
  21. .then(response => response.json())
  22. .then(data => {
  23. if("routes" in data){
  24. let route = data.routes[0].geometry.coordinates
  25. route.map((pos) => pathCopy.push(pos))
  26. pathCopy.push(end)
  27. } else{
  28. pathCopy.push(end)
  29. }
  30. this.setState({path: pathCopy})
  31. this.getDistance()
  32. })
  33. .catch((error) =>{
  34. console.error(error);
  35. });
  36. }
  37. }