Copy import { Component } from 'solid-js'
import MapGL from 'solid-map-gl'
import 'mapbox-gl/dist/mapbox-gl.css'
const App : Component = () => (
< MapGL
options = {{ style : 'mb:basic' }}
viewport = {{
center : [ - 122.41 , 37.78 ] ,
zoom : 11 ,
}}
></ MapGL >
)
In most cases, you will want the user to interact with the map. To do this, you need to provide onViewportChange
handler, that will update the map's viewport state.
Copy import { Component , createSignal } from "solid-js" ;
import MapGL , { Viewport } from "solid-map-gl" ;
import 'mapbox-gl/dist/mapbox-gl.css' ;
const App : Component = () => {
const [ viewport , setViewport ] = createSignal ({
center : [ - 122.41 , 37.78 ] ,
zoom : 11 ,
} as Viewport );
return (
< MapGL
options = {{ style : 'mb:light' }}
viewport = { viewport ()}
onViewportChange = {(evt : Viewport ) => setViewport (evt)}
></ MapGL >
);
};
Copy import { Component , createSignal } from "solid-js" ;
import MapGL , { Viewport } from "solid-map-gl" ;
import 'mapbox-gl/dist/mapbox-gl.css' ;
const App : Component = () => {
const [ viewport , setViewport ] = createSignal ({
center : [ - 122.45 , 37.78 ] ,
zoom : 11 ,
} as Viewport );
const [ style , setStyle ] = createSignal ( 'basic' );
return (
< MapGL
options = {{ style : `mb: ${ style () } ` }}
viewport = { viewport ()}
onViewportChange = {(evt : Viewport ) => setViewport (evt)}
>
< button onClick = {() => setStyle ( 'dark' )}>Dark</ button >
< button onClick = {() => setStyle ( 'light' )}>Light</ button >
< button onClick = {() => setStyle ( 'street' )}>Street</ button >
< button onClick = {() => setStyle ( 'outdoors' )}>Outdoor</ button >
< button onClick = {() => setStyle ( 'sat' )}>Satellite</ button >
< button onClick = {() => setStyle ( 'sat_street' )}>Satellite Streets</ button >
< button onClick = {() => setStyle ( 'nav_day' )}>Nav Day</ button >
< button onClick = {() => setStyle ( 'nav_night' )}>Nav Night</ button >
</ MapGL >
);
};