rgncycle-ui/app/components/map/entities-map.jsx

51 lines
1.4 KiB
React
Raw Normal View History

2023-04-21 15:18:02 +02:00
import React from 'react';
import PropTypes from 'prop-types';
2023-04-25 21:14:11 +02:00
import {MapContainer,Polyline,TileLayer} from 'react-leaflet';
2023-04-21 15:18:02 +02:00
/*JS module import (vs cdn or style link)*/
import 'leaflet/dist/leaflet.css'
import './entities-map.css';
import EntitiesMarker from './entities-marker';
2023-04-25 21:14:11 +02:00
import {getCoordinates} from '../../utils/entities';
2023-04-21 15:18:02 +02:00
export default function EntitiesMap({entities}) {
/*lat and lon of Braunschweig,DE*/
const position = [52.26594, 10.52673]
//TODO make this switch available via configuration!
const hasGtfs = false;
2023-04-25 21:14:11 +02:00
//set polyline color
const colorOptions = { color: 'darkblue' }
2023-04-21 15:18:02 +02:00
return (
<>
<MapContainer
center={position}
zoom={6}
minZoom={2}
2023-04-25 21:14:11 +02:00
scrollWheelZoom={false}
2023-04-21 15:18:02 +02:00
>
<TileLayer
attribution='&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
{
entities.map(function(value,key) {
//console.log(`key: ${key}, tripId: ${value.tripId}`);
return <EntitiesMarker
key={value[0]}
index={value[0]}
name={value[1]}
lat={value[2]}
lon={value[3]}
/>;
})
}
2023-04-25 21:14:11 +02:00
<Polyline pathOptions={colorOptions} positions={getCoordinates(entities)} />
2023-04-21 15:18:02 +02:00
</MapContainer>
</>
);
}
EntitiesMap.propTypes = {
entities: PropTypes.array
};