scale control and minor changes

master
gman 2 years ago
parent df2ef307b9
commit 81d4c903f7

@ -1,6 +1,6 @@
import { Paper, Flex, ScrollArea, Autocomplete } from '@mantine/core';
import { ArticleCardVertical } from './ArticleCard';
import Map, {Source, Layer} from 'react-map-gl/maplibre';
import Map, { Source, Layer, ScaleControl } from 'react-map-gl/maplibre';
import { useState, useEffect, useRef } from 'react';
import Fuse from 'fuse.js'
@ -81,42 +81,42 @@ export function KartaPage() {
cursor={cursor}
mapStyle={mapstyle}
interactiveLayerIds={['points-layer']}
onClick={e => {e.features[0] ? setSelected(e.features[0].properties.id) : setSelected(-1); console.log(e.features)}}
onClick={e => { e.features[0] ? setSelected(e.features[0].properties.id) : setSelected(-1) }}
onMouseEnter={() => setCursor('pointer')}
onMouseLeave={() => setCursor('grab')}
onLoad={handleMapLoad}
>
<Source
id='points'
type='vector'
tiles={[`${host}/tiles/{z}/{x}/{y}.pbf`]}
maxzoom={10}
>
<Source
id='points'
type='vector'
tiles={[`${host}/tiles/{z}/{x}/{y}.pbf`]}
maxzoom={10}
>
<Layer
id='points-layer'
type='circle'
source-layer='layer'
filter={articles === null || articles.length == 0 ? false : ['in', 'id', ...articles.map(a => a.id)]}
paint={{
"circle-color": ['match', ['get', 'id'], selected, '#FF0000', '#1c9099'],
"circle-radius": 8,
"circle-opacity": 0.7,
}}
maxzoom={9}
/>
<Layer
id='points2-layer'
type='symbol'
source-layer='layer'
filter={articles === null || articles.length == 0 ? false : ['in', 'id', ...articles.map(a => a.id)]}
layout={{
'icon-image': 'pin-marker',
'icon-size': 1
}}
minzoom={9}
/>
</Source>
<Layer
id='points-layer'
type='circle'
source-layer='layer'
filter={articles === null || articles.length == 0 ? false : ['in', 'id', ...articles.map(a => a.id)]}
paint={{
"circle-color": ['match', ['get', 'id'], selected, '#FF0000', '#1c9099'],
"circle-radius": 8,
"circle-opacity": 0.7,
}}
maxzoom={7}
/>
<Layer
id='points2-layer'
type='symbol'
source-layer='layer'
filter={articles === null || articles.length == 0 ? false : ['in', 'id', ...articles.map(a => a.id)]}
layout={{
'icon-image': 'pin-marker',
'icon-size': 1
}}
minzoom={7}
/>
</Source>
<ScaleControl/>
</Map>
<Paper shadow={'md'} withBorder style={{
position: 'absolute',
@ -160,9 +160,6 @@ export function KartaPage() {
return <ArticleCardVertical key={article.id} {...articleInfo} />
}
)}
</Flex>
</ScrollArea>

Loading…
Cancel
Save