diff --git a/src/components/atoms/Exif.jsx b/src/components/atoms/Exif.jsx index ed874498..bf80f2dc 100644 --- a/src/components/atoms/Exif.jsx +++ b/src/components/atoms/Exif.jsx @@ -7,27 +7,21 @@ import styles from './Exif.module.scss' const MAPBOX_ACCESS_TOKEN = 'pk.eyJ1Ijoia3JlbWFsaWNpb3VzIiwiYSI6ImNqbTE2NHpkYjJmNm8zcHF4eDVqZzk3ejEifQ.1uwPzM6MSTgL2e1Hxcmuqw' -const mapbox = (mapboxId, accessToken) => (x, y, z) => { - const retina = - typeof window !== 'undefined' && window.devicePixelRatio >= 2 ? '@2x' : '' - return `https://api.mapbox.com/styles/v1/mapbox/${mapboxId}/tiles/256/${z}/${x}/${y}${retina}?access_token=${accessToken}` -} +const retina = + typeof window !== 'undefined' && window.devicePixelRatio >= 2 ? '@2x' : '' + +const mapbox = (mapboxId, accessToken) => (x, y, z) => + `https://api.mapbox.com/styles/v1/mapbox/${mapboxId}/tiles/256/${z}/${x}/${y}${retina}?access_token=${accessToken}` const providers = { osm: (x, y, z) => { const s = String.fromCharCode(97 + ((x + y + z) % 3)) return `https://${s}.tile.openstreetmap.org/${z}/${x}/${y}.png` }, - wikimedia: (x, y, z) => { - const retina = - typeof window !== 'undefined' && window.devicePixelRatio >= 2 ? '@2x' : '' - return `https://maps.wikimedia.org/osm-intl/${z}/${x}/${y}${retina}.png` - }, - stamen: (x, y, z) => { - const retina = - typeof window !== 'undefined' && window.devicePixelRatio >= 2 ? '@2x' : '' - return `https://stamen-tiles.a.ssl.fastly.net/terrain/${z}/${x}/${y}${retina}.jpg` - }, + wikimedia: (x, y, z) => + `https://maps.wikimedia.org/osm-intl/${z}/${x}/${y}${retina}.png`, + stamen: (x, y, z) => + `https://stamen-tiles.a.ssl.fastly.net/terrain/${z}/${x}/${y}${retina}.jpg`, streets: mapbox('streets-v10', MAPBOX_ACCESS_TOKEN), satellite: mapbox('satellite-streets-v10', MAPBOX_ACCESS_TOKEN), outdoors: mapbox('outdoors-v10', MAPBOX_ACCESS_TOKEN), @@ -35,23 +29,37 @@ const providers = { dark: mapbox('dark-v9', MAPBOX_ACCESS_TOKEN) } -class MapExif extends PureComponent { +class ExifMap extends PureComponent { + state = { zoom: 6 } + static propTypes = { gps: PropTypes.object } + zoomIn = () => { + this.setState({ + zoom: Math.min(this.state.zoom + 3, 18) + }) + } + render() { const { latitude, longitude } = this.props.gps return ( ) } @@ -84,7 +92,7 @@ export default class Exif extends PureComponent { {iso && {iso}} {focalLength && {focalLength}} -