Map styles for any use case
Design and customize your own maps
Create powerful apps with our versatile SDK
Powerful map searching and geocoding services
Enrich maps with your own data
Secure self-hosted mapping solutions
This tutorial shows how to create a map and display it on a web page using MapTiler.
Create a map with the TypeScript-based SDK. Take advantage of code completion, type safety, and backward compatibility.
Our built-in styles are designed to make it easier for you to create beautiful maps, without the need for extra coding or worrying about outdated versions.
This tutorial shows how to change the map styles, you can switch between the built-in maps and your own custom maps.
This tutorial shows how to add a default marker to the map.
This tutorial shows how to add a GeoJSON polygon overlay to the map.
This tutorial shows how to add a GeoJSON line overlay to the map.
This tutorial shows how to add a GeoJSON point overlay to the map.
This tutorial shows how to add a GeoJSON MultiGeometry overlay to the map.
This tutorial shows how to add a raster image overlay to the map.
This example demonstrates how to display a custom map on the web page using MapTiler.
This tutorial demonstrates how to make a map of USA election results.
This tutorial demonstrates how to create a 3D terrain map and display it on a web page using MapTiler.
This tutorial shows how to add a styled GeoJSON overlay to the map, display a popup on click, and create a map legend.
This tutorial shows how to search places using the MapTiler Geocoding API.
This tutorial shows how to search places by coordinates (reverse geocoding).
This tutorial shows how to add the projection control that toggles the map between "mercator" and "globe" projection.
This tutorial shows how to search for places using the geocoding control.
This tutorial shows how to disable the geolocate control to show the user's location using the GPS or the browser location.
This tutorial shows how to hide the navigation control (zoom and rotation controls to the map).
This tutorial shows how to use and filter data for MapTiler Countries and make a choropleth map.
This tutorial shows how to Join MapTiler Countries with your own custom data and make a choropleth map.
This tutorial shows how to center map based on the visitor’s country bounds using the MapTiler Geolocation API.
This tutorial shows how to center map based on the visitor's location using the MapTiler Geolocation API.
This tutorial shows how to automatically change disputed borders according to your map visitor's location usign the MapTiler Geolocation API.
This tutorial shows how to sync the map with a list of places.
This tutorial shows how to automatically change the map labels language based on visitor's location usign the MapTiler Geolocation API.
This tutorial shows how to change the default map labels language.
This tutorial demonstrates how to enable/disable the 3D terrain map programmatically using SDK functions.
This tutorial shows how to display the cookies consent bar according to the visitor's location usign the MapTiler Geolocation API.
This tutorial shows how to add and display a scale control on the map.
This tutorial shows how to add and display a style switcher control on the map.
This tutorial shows how to display a minimap or overview map control in MapTiler SDK JS to aid the map navigation.
This tutorial shows how to display a map legend control to toggle layers visualization.
This tutorial shows how to migrate/switch from MapLibre to MapTiler.
This tutorial shows how to migrate/switch from Mapbox to MapTiler.
This tutorial shows how to display an interactive choropleth map legend control.
This example shows how to capture the current map view as a blob (PNG image).
This example shows how to capture the current map view with Usersnap.
This example shows how to capture the current map view with Ybug.
Visualize weather precipitation layer from MapTiler Weather Precipitation dataset and get the precipitation at the point under the cursor.
Geocoding control limit search results to specified country(ies).
Use a custom style layer with three.js to add a 3D model to the map.
This example shows how to change the map mode (light/dark) based on the position in a route.
Extend clustering with HTML markers and custom property expressions.
Dynamically generate a missing icon at runtime and add it to the map.
Add a 3D model into a map with 3D terrain, use a custom style layer with three.js.
Limit the search results of the geocoding control to the specific area (bounding box).
Share and retrieve a particular map view by simply copying and pasting the URL. Maintain the map view in the URL hash.
Drag the point to a new location on a map and populate its coordinates in a display.
Specify the geocoding control language(s) that are used for the response text and weighting of the query results.
Use the MapTiler 3D JS module to display a 3D building model generated with photogrammetry software processing thousands images on a map.
Drag the marker to a new location on a map and populate its coordinates in a display.
Animate a line by updating a GeoJSON source on each frame.
Customize the map background to create a red Milky Way effect and create a halo around the Earth.
This example shows how to make a map with pins to display a point layer from a MapTiler Tileset using a custom PNG icon.
Place attribution in the top-left position when initializing a map.
Use the localIdeographFontFamily setting to speed up map load times by using locally available fonts instead of font data fetched from the server.
Customize camera animations using AnimationOptions.
Fit the map to a specific area, regardless of the pixel size of the map.
Visualize weather cloud coverage displayed from radar data from MapTiler Weather Radar dataset and get the radar at the point under the cursor.
Create a map with custom landmarks and add interactions like popups to display additional information.
Use real-time GeoJSON data streams to move a symbol on your map.
Visualize weather pressure layer from MapTiler Weather Pressure dataset and get the pressure at the point under the cursor.
With animation, your 3D models take on a whole new dimension. You can bring them to life and display them on a map
Adds an atmospheric glow around the globe, simulating the visual effect of Earth's atmosphere when viewed from space.
Use events and feature states to create a per feature hover effect.
Create a visualization with a data expression for line-color.
Create a weather globe map using the Marker Layout to show your custom weather markers icons, animated SVGs or Lotties.
To calculate distances on the map, simply click on different points to create lines that will measure the distances using turf.length.
Visualize weather wind and temperature layer from MapTiler Weather Wind dataset and get the wind speed and temperature at the point under the cursor.
Add a compass rose as a visual indicator of the map’s bearing (rotation) using Custom Controls.
Enable or disable UI handlers on a map.
Use the MapTiler 3D JS module to add a airplane model to the map.
How to get elevation in meters at any location by clicking to map.
This example demonstrates how to add a custom control that shows the current zoom.
Visualize weather temperature layer from MapTiler Weather Temperature dataset with a custom color blind ramp and get the temperature at the point under the cursor.
Use text-variable-anchor to allow high priority labels to shift position to stay on the map.
Use the keyboard's arrow keys to move around the map with game-like controls.
Filter symbols by icon name by typing in a text input.
Show a detailed 3D map of the ocean seafloor and bathymetry.
Visualize weather wind layer from MapTiler Weather Wind dataset and get the wind speed at the point under the cursor.
Create a weather map using the Marker Layout to show your custom weather markers icons, animated SVGs or Lotties.
Use the jumpTo function to showcase multiple locations.
Add an animated icon to the map that was generated at runtime with the Canvas API.
Initialize a map with pitch and bearing camera options.
Display a zoomable non-georeferenced, geographically "inaccurate" maps in your application using the ImageViewer.
Use events and flyTo to center the map on a symbol.
Filter a layer based on user input using setFilter().
Add a vector source to a map.
Use events and feature states to create a interactive choropleth map.
Use the MapTiler 3D JS module to add multiple 3D models to the map.
Visualize and animate the evolution of the Global population density data with the MapTiler SDK Weather module.
Get the bounds of a lineString.
Use queryRenderedFeatures to show properties of hovered-over map elements.
Change the units for the altitude of the contour lines, converting from meters to feet. The Global Contours schema, created by MapTiler, contains contour lines in both common unit systems meters and feet.
Use the MapTiler 3D JS module to rotate a 3D model, setting the pitch and roll properties.
Use the MapTiler 3D JS module to listen for mouse events on 3D models.
Use the ready event to waits until the style and all the basic controls are nicely positioner to add other custom controls or custom layers to a map.
Visualize weather pressure isolines layer from MapTiler Weather Plus Pressure dataset and display the Hi/Lo pressure extreme values.
This example shows how to make a map with pins to display a point layer from a MapTiler Tileset using a custom SVG icon.
Use the upcase and downcase expressions to change the case of labels.
Add contour lines to your map from a raster-dem source.
Use the second argument of addLayer to add a layer below labels.
Use the MapTiler 3D JS module to display a point cloud 3D building model on a map.
Visualize weather wind arrow layer from MapTiler Weather Plus Wind dataset and get the wind speed at the point under the cursor.
Use Turf to smoothly animate a point along the distance of a line.
When a user clicks a symbol, show a popup containing more information.
Create a map in an HTML element with the MapTiler SDK JS.
Visualize weather pressure isolines layer from MapTiler Weather Plus Pressure dataset.
Use the MapTiler 3D JS module to display a LIDAR data 3D city model on a map.
Use the MapTiler 3D JS module to add a 3D model to the map.
Use a variable binding expression to calculate and display population density.
Use the interpolate expression to ease-in the building layer and smoothly fade from one color to the next.
This example demonstrates how to adjust hillshade lighting dynamically. You could use a change in hillshade lightning to simulate the movement of the sun in the sky.
Add markers to a zoomable non-georeferenced, geographically "inaccurate" maps.
Prevent users from rotating a map.
View local GeoJSON without server upload.
Attach a popup to a marker and display it on click.
Add a popup to the map.
Use a series of image sources to create an animation.
Add an icon to the map that was generated at runtime.
With the onChangeView event of the elevation profile control for MapTiler SDK, we have access to a GeoJSON LineString corresponding to the zoomed section. This way, we can display the section on top of the full-length route.
Visualize and filter earthquakes with a range slider.
Draw a line across the 180th meridian using a GeoJSON source.
Create a globe map with 3D terrain elevation.
Add a 3D model to globe using MapTiler 3D JS module.
Use a coalesce expression to display another image when a requested image is not available.
This example adds raster hillshading to a map by adding the MapTiler Terrain-DEM raster tileset as a raster-dem source with a hillshade layer.
Filter thousands of features in real time to quickly and easily find those with a property that meets your search criteria.
Use the MapTiler 3D JS module to play animations in a GLTF model and move the models to simulate a flight over the map.
Use the line-gradient paint property and an expression to visualize distance from the starting point of a line.
Scroll down through the story and the map will fly to the chapter's location.
Geocoding control search results filter by type and given higher priority for the results near the user's location.
Get POI information from MapTiler, OpenStreetMap (OSM), and Wikidata data by clicking on the map.
How to search for places by coordinates (reverse geocoding) using the user's location. Reverse geocoding transforms coordinates into place names.
Add custom marker icons to your map.
Offset the center or vanishing point of the map to reduce distortion when floating elements are displayed over the map.
Create a globe map with ocean bathymetry terrain elevation.
Animate the position of a point by updating a GeoJSON source on each frame.
Use flyTo to smoothly interpolate between locations.
Display a video on top of a satellite raster baselayer.
Create custom non-colliding marker overlays on your map using the Marker Layout on top of MapTiler SDK. .
Filter a set of symbols based on a property value in the data.
Use flyTo with flyOptions to slowly zoom to a location.
The elevation profile control for MapTiler SDK is a super easy way to show the elevation profile of any GeoJSON trace, with elevation data fueled by MapTiler.
Prevent scroll from zooming a map.
Add a custom color background to the globe.
Use the Formatted type to display a rich text labels with texts and icons from images URL.
Create a custom halo, define a radial gradient with scale and stops to add a custom atmospheric glow around the globe.
Prevent a map from being panned to a different place by setting maxBounds.
Animate the position of a marker by updating its location on each frame.
Add an icon to the map from an external URL and use it in a symbol layer.
How to add a custom control programmatically. Ideal for applications that require dynamic logic, event-driven behaviour, or a deeper integration with a framework like React
This example shows how to change the map mode between light and dark based on the time of day.
Use setPaintProperty to change a layer's fill color.
Visualize weather wind layer from MapTiler Weather Wind dataset and get the wind speed and direction at the point under the cursor.
View local GeoJSON with experimental File System Access API.
Enable cooperative gestures with a specific language. .
Use a custom style layer with babylon.js to add a 3D model to the map.
The elevation profile control for MapTiler SDK is a super easy way to show the elevation profile of any GPX track, with elevation data fueled by MapTiler.
Use a stretchable image as a background for text.
Use the MapTiler 3D JS module to simulate and animate a plane flight between two cities.
Support coordinate-based searches (reverse geocoding) using the geocoding control.
Learn how to create a mobile-friendly Progressive Web App using the MapTiler SDK for JavaScript.
Create non-colliding marker overlays to display the information from the city and town label layers.
Animate the map camera around a point.
Visualize weather radar layer from MapTiler Weather Radar dataset and get the radar at the point under the cursor.
Use the format expression to display country labels in both English and in the local language.
Show mouse position on hover with pixel and latitude and longitude coordinates.
Use extrusions to display buildings' height in 3D.
Toggle between rendering a single world and multiple copies of the world using setRenderWorldCopies.
Use SDK JS built-in functions to visualize points as clusters.
The elevation profile control for MapTiler SDK, can be customized in many ways and is compatible with both metric and imperial units. It has many built-in defaults and does not need much to look nice!
Render vector data provided by Mapillary.
Geocoding control search results closer to the specific geographical point, results near the provided point are ranked higher.
This 3D choropleth map of Europe with countries extruded uses an external dataset to provide data-driven values for the fill-extrusion-height paint property of various country polygons in a fill-extrusion layer.
Disable interactivity to create a static map.
This example shows how to switch between “mercator” and “globe” map projection programmatically.
This example shows how to simulate and animate a airplane flight in a globe using MapTiler 3D JS module.
Toggle between the current view and fullscreen mode.
With the onMove event of the elevation profile control for MapTiler SDK, we can show a marker moving on top of the trace on the map. This way, we can synchronize the position of the elevation profile cursor with the position of the map.
Use the MapTiler 3D JS module to rotate a 3D model, setting the roll property.
Visualize weather wind arrow layer from MapTiler Weather Plus Wind dataset .
Add a start space background enviroment to the globe, simulating deep space.
Draw points from a GeoJSON collection to a map.
Use a custom style layer to render custom WebGL content.
Visualize weather pressure isolines layer from MapTiler Weather Plus Pressure dataset and get the pressure at the point under the cursor.
Use the adjustUrl option in the geocoding control constructor to modify the geocoding URL before the fetch. This capability enables complete control over the search control's functionality.
This example demonstrates using custom popups on top of a map because MapLibre's popups were originally quite limited in layout and style.
Switch the display of the different weather layers in MapTiler Weather data set and get the data information at the point under the cursor.
Change an existing feature on your map in real-time by updating its data.
Visualize weather temperature layer from MapTiler Weather Temperature dataset and get the temperature at the point under the cursor.
Use the MapTiler 3D JS module to rotate a 3D model, setting the pitch property.
Add an external Web Map Service raster layer to the map using addSource's tiles option.
How to add a custom control in a declarative way. A simple way to add interactive UI elements to the map by using HTML attributes alone
Learn how to interact with cadastral information effectively.
Create custom non-colliding marker overlays on your 3D globe map using the Marker Layout module.
This example uses SDK JS to visualize the frequency of US schools by location using a heatmap layer.
Use fill-pattern to draw a polygon from a repeating image pattern.
Create a 3D indoor map with the fill-extrude-height paint property.
Add a canvas source to the map.
Add a third-party raster source to the map.
Use setLanguage function to switch languages dynamically.
When a user clicks a polygon, display a popup containing more information.
Display a satellite raster baselayer.
Add a milkyway and stars background to the globe.
Use a custom map of the Earth's satellite image at night and display it on a globe with a space background.
Limit geocode control search results to the bounding box of the drawn area. Draw a polygon on the map to filter the search results to the polygon bounding box.
Specify the map projection to view the map in a 3D globe.
Use the MapTiler 3D JS module to display the wireframe of a building 3D model based on point cloud data on a map.
When a user hovers over a custom marker, show a popup containing more information.
Use mapbox-gl-draw to draw a polygon and Turf.js to calculate its area in square meters.
This example shows how to change the map mode (light/dark) based on system settings.
This example uses SDK JS to fly between different locations and visualize the frequency of US schools by location using a heatmap layer with low zoom levels and a styled circles layer with a data-driven property for zoom levels in more detail.
This example shows how to create a custom color ramp and use it to visualize a point layer.
This example shows how to add a point layer to the map using the point layer helper.
This example shows how to add a line layer to the map using the polyline layer helper.
This example shows how to add a polygon layer to the map using the polygon layer helper.
This example shows how to add a heatmap layer to the map using the heatmap layer helper.
This example shows how to download a map screenshot as a PNG file using the screenshot helper.
This example shows how to resample a color ramp and use it to visualize a point layer.
This example shows how to add a heatmap layer with a property as weight to the map using the heatmap layer helper.
This example shows how to add a point layer with labels to the map using the point layer helper.
This example shows how to add a heatmap layer with a custom opacity to the map using the heatmap layer helper.
This example shows how to add a point layer to the map using the point layer helper with zoom compensation disabled.
This example shows how set the min and max zoom of a heatmap layer using the heatmap layer helper.
This example shows how to add a heatmap layer with a custom zoom-ramping radius to the map using the heatmap layer helper
This example shows how to add and style a GeoJSON line layer to the map using the polyline layer helper.
This example shows how to move a marker by clicking on the map.
This example shows how to add a heatmap layer with a custom intensity to the map using the heatmap layer helper.
This example shows how to add and a KML line layer to the map using the polyline layer helper.
This example shows how to add a point layer colored and sized according to the property "mag" (= earthquake magnitude) to the map using the point layer helper.
This example shows how to add a heatmap layer with a custom propertry-ramping radius to the map using the heatmap layer helper.
This example shows how to add a heatmap layer with a custom color ramp to the map using the heatmap layer helper.
This example shows how to modify the default point size values of a point layer with a bit of transparency using the point layer helper.
This example shows how to add a point layer cluster to the map using the point layer helper with the default values.
This example shows how to add a polygon layer with a fill pattern to the map using the polygon layer helper.
This example shows how to add and a GPX line layer to the map using the polyline layer helper.
This example shows how to scale the radius of a point layer based on the map zoom level using the point layer helper.
This example shows how to add a line layer with a dash pattern symbol to the map using the polyline layer helper.
This example shows how to add a polygon layer with a color ramp symbol that changes the fill color based on the map's zoom level using the polygon layer helper.
This example shows how to add a heatmap layer without zoom compensation radius to the map using the heatmap layer helper.
This example shows how to add a point layer with an outline to the map using the point layer helper.
This example shows how to add a heatmap layer to the map, simultaneously controlling the radius and weight based on a property using the heatmap layer helper.
This example shows how to add a point layer to the map with size and color scaled by property using the point layer helper.
This example shows how to add a line layer with a color ramp symbol that changes the line color based on the map zoom level using the polyline layer helper.
This example shows how to add a line layer with an outline glow blur symbol to the map using the polyline layer helper.
Getting started with AR maps: The Augmented reality (AR) control adds a button on your map to create a 3D model of the viewport, including 3D terrain and any layer you have put on top. Compatible with WebXR or Apple Quick Look.
Include a QR code to access your augmented reality (AR) maps on a mobile device. Compatible with WebXR or Apple Quick Look.
Add a GeoJSON line to Augmented reality (AR) map, to create a biking or hiking route 3D model. Compatible with WebXR or Apple Quick Look.
Customize the AR experience: The Augmented reality (AR) control accepts an option object to customize the look and feel. Compatible with WebXR or Apple Quick Look.
How to trigger actions in the AR control: Display the Augmented reality (AR) control using the keyboard to create a 3D viewport model, including 3D terrain and any layer you have put on top. Compatible with WebXR or Apple Quick Look.
In this tutorial, you’ll learn how to create a Vue.js component to render a map using MapTiler SDK JS
In this tutorial, you’ll learn how to display a map in Vite using MapTiler SDK JS
This tutorial shows how to search for places using the Geocoding control component in React JS
In this step-by-step tutorial, you’ll learn how to create a React JS component to render a map using MapTiler SDK JS.
In this step-by-step tutorial, you’ll learn how to create a heatmap in your React JS map using the MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to create a map with a geocoding control in your React JS map using the MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to create a 3D terrain map with a geocoding control in your React JS map using the MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to create a application in React JS with Material UI (MUI) to render a map using the MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to add geojson points to your React JS map using the MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to create a map with a sidebar and popup in your React JS map using the MapTiler SDK JS
This example shows how to use Deck.gl layers in a MapTiler SDK JS map. This example shows how to display a Deck.gl GeoJSON layer, along with an Deck.gl arc layer on top of your MapTiler maps.
This example shows how to toggle a deck.gl layer using MapTiler SDK JS.
This example demonstrates the process of loading an MVT layer of Points of Interest (POIs) using Deck.gl and displaying a tooltip. The example shows the poi layer that comes from the MapTiler Planet tileset.
This example illustrates the process of showcasing a GeoJSON layer in Deck.gl. In this particular instance, we utilize an arc layer to visually represent the connections between the various features of the GeoJSON layer.
This example shows how to create a deck.gl layer as an overlay from a REST API using MapTiler SDK JS.
This Deck.gl example demonstrates how to load a Vector Tiles layer. The example shows the building layer that comes from the MapTiler Planet tileset.
In this tutorial, you’ll learn how to create an Angular component to render a map using MapTiler SDK JS
In this step-by-step tutorial, you’ll learn how to create a Svelte component to render a map using MapTiler SDK JS
This tutorial shows how to search for places using the Geocoding control component in Svelte
Thank you! Please tell us what's unclear or missing on this page, so we can improve it for you.
Thank you for your feedback!
You've already voted on this page.
reCAPTCHA failed! Please try again.