|
@@ -0,0 +1,60 @@
|
|
|
+import React from "react";
|
|
|
+import ReactMapboxGl, {
|
|
|
+ Layer,
|
|
|
+ Feature,
|
|
|
+ ZoomControl,
|
|
|
+ ScaleControl,
|
|
|
+ RotationControl,
|
|
|
+ Marker
|
|
|
+} from 'react-mapbox-gl';
|
|
|
+import mapboxToken from './config/mapboxToken.js';
|
|
|
+
|
|
|
+const LONGITUDE = 14.320570
|
|
|
+const LATITUDE = 48.336950
|
|
|
+const Map = ReactMapboxGl({ accessToken: mapboxToken });
|
|
|
+const ICON = `M20.2,15.7L20.2,15.7c1.1-1.6,1.8-3.6,1.8-5.7c0-5.6-4.5-10-10-10S2,4.5,2,10c0,2,0.6,3.9,1.6,5.4c0,0.1,0.1,0.2,0.2,0.3
|
|
|
+ c0,0,0.1,0.1,0.1,0.2c0.2,0.3,0.4,0.6,0.7,0.9c2.6,3.1,7.4,7.6,7.4,7.6s4.8-4.5,7.4-7.5c0.2-0.3,0.5-0.6,0.7-0.9
|
|
|
+ C20.1,15.8,20.2,15.8,20.2,15.7z`;
|
|
|
+
|
|
|
+
|
|
|
+export default class Mapbox extends React.Component{
|
|
|
+ state = {
|
|
|
+ latitude: LATITUDE,
|
|
|
+ longitude: LONGITUDE,
|
|
|
+ zoom: [15],
|
|
|
+ path: [[48.295742, 14.286967], [48.328529, 14.322428]],
|
|
|
+ distance: 0
|
|
|
+ }
|
|
|
+
|
|
|
+ render() {
|
|
|
+ const position = [this.state.longitude, this.state.latitude]
|
|
|
+ return (
|
|
|
+ <Map
|
|
|
+ style="mapbox://styles/mapbox/streets-v9"
|
|
|
+ containerStyle={{
|
|
|
+ height: '400',
|
|
|
+ width: '600'
|
|
|
+ }}
|
|
|
+ center={position}
|
|
|
+ zoom={this.state.zoom}
|
|
|
+ >
|
|
|
+ <Layer type="symbol" id="marker" layout={{ 'icon-image': 'marker-15' }}>
|
|
|
+ <Feature coordinates={position} />
|
|
|
+ </Layer>
|
|
|
+
|
|
|
+ <Marker
|
|
|
+ coordinates={position}
|
|
|
+ anchor="bottom"
|
|
|
+ >
|
|
|
+ <svg height={20} viewBox="0 0 24 24" style={{fill: "#343a40", stroke: "none"}}>
|
|
|
+ <path d={ICON} />
|
|
|
+ </svg>
|
|
|
+ </Marker>
|
|
|
+
|
|
|
+ <ZoomControl position={"bottom-right"}/>
|
|
|
+ <ScaleControl position={"bottom-right"}/>
|
|
|
+ <RotationControl position={"bottom-right"}/>
|
|
|
+ </Map>
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|