We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Trusted by the world’s leading companies

Syncfusion Trusted Companies


The JavaScript Map control is ideal for rendering maps from GeoJSON data or other map providers like OpenStreetMap and Bing Maps. JavaScript Library helps to create interactive and customized maps. Its rich feature set includes markers, labels, bubbles, navigation lines, legends, tooltips, zooming, panning, drill down, and more.

GeoJSON layer

Bind GeoJSON data to the maps to render any geometric shape in SVG (Scalable Vector Graphics) for data visualization of shapes. For example, render the world map or US map and customize it to the desired look using built-in options in the JavaScript Maps control. Add any number of layers to the maps.

Geo-imagery visuals

Built-in support for external geospatial imagery services, such as Bing maps and OpenStreetMap, is used to visualize satellite, aerial, and street maps, or other kinds of imagery tiles without any external shape inputs. Apart from Bing maps and OpenStreetMap, maps can also be rendered from other map providers, for example, Google Maps. By using these external services, map data can be located easily.


Using sublayer, a JavaScript map can be created with multiple geometric layers in a single view. For example, render additional geographic features of a country such as rivers, valleys, and more as sublayer. You can also drill each layer.

JavaScript Maps is rendered with multiple layers


Denote a place with symbols or mark messages at the desired latitude and longitude on a map using markers. For example, indicate a particular place on the US map using a balloon marker shape. Also, place any HTML element as a marker and add multiple markers to the map.

JavaScript Maps is rendered with multiple markers

Marker clustering

Display multiple markers in the same location by clustering the markers overlapping one another. For example, use markers to indicate the top 50 cities in the world. If a marker overlaps another, it will be clustered, and the total number of markers will be displayed over the cluster.

JavaScript Maps is rendered with marker clustering option

Data label

Data labels on the maps provide identification for the shapes by displaying their names. Trim or hide the labels at intersections with other labels and when they exceed shape bounds.

JavaScript Maps is rendered with data labels, which displays the name of the shapes


Create a simple JavaScript map with bubbles to represent additional information about shapes such as population density, land area, and more. Bubbles are rendered with various magnitudes and colors based on the underlying data values of the shape.

JavaScript Maps is rendered with multiple bubbles

Denote flight routes or ship routes on a geographic map between two places. These connector lines link points on a map and can also be curved.

JavaScript Maps is rendered with navigation lines

Color mapping

Categorize the shapes on a map by customizing their color based on the underlying values. The JavaScript Maps control supports two types of color mapping, range color mapping and equal color mapping.

Range color mapping is applied for the shapes in JavaScript Maps

Range color mapping

Apply colors to the shapes by comparing their values with a desired numeric range. For example, apply colors to the states in the US based on population density.

Equal color mapping is applied for the shapes in JavaScript Maps

Equal color mapping

Differentiate a shape’s fill based on its underlying values and colors, using equal color mapping. For example, apply colors to the states in the US based on a winning candidate.

Desaturation color mapping is applied for the shapes in JavaScript Maps

Desaturation color mapping

Change the opacity of the shapes by comparing their values with a desired numeric range. Minimum and maximum opacity of the shapes can be customized.

Desaturation color mapping with multiple colors are applied for the shapes in JavaScript Maps

Desaturation with multiple colors

Apply multiple colors to the shape from a gradient by comparing their values with a desired numeric range. Any number of colors can be specified for creating the gradient.


Legends provide valuable information for interpreting the map with various colors, shapes, or other identifiers based on data and application needs. Interactive JavaScript Maps control supports two types of legends: Default and interactive.

JavaScript Maps is rendered with default legend items


A map with a legend contains swatches of symbols with descriptions to denote the categories of shapes.

JavaScript Maps is rendered with interactive legend


Use a JavaScript Map with an interactive legend to find the range of an underlying shape’s value on mouse hover.

Zooming and panning

Zoom the JavaScript Map for close-up analysis by pinching the map, scrolling the mouse wheel, clicking the shapes, or by using zooming toolbar; and pan the map for easy navigation across regions. Also change the zoom level of the initial rendering.

Zooming and panning is enabled in the JavaScript Maps


The tooltip displays details about the shape value on mouse hover. Tooltips are also displayed for markers and bubbles on a map.

Displays a tooltip on moving mouse over the JavaScript Maps


Drill-down the rendered JavaScript Maps to display a different shape data located on another layer. For example, in the initial layer render the world map and on clicking a particular continent, render it separately on another layer.

JavaScript Maps is rendered with multiple layers and enabled drilldown option

Selection and highlight

Select a particular shape on mouse click or highlight on mouse hover to bring the focus to the other shapes on a map.

Particular shape is selected in the rendered JavaScript Maps

Custom shapes

Create a JavaScript Map with custom shapes by rendering personalized GeoJSON data to indicate building infrastructure, points of interest, flight/bus seat arrangement, cricket stadium, and more.

Bus seat selection is simulated in the JavaScript Maps


Display any HTML element as an annotation at a specific point of interest on a map. For example, place a direction compass image on the map using annotation. Also add multiple annotations to a map.

JavaScript Maps is rendered with annotation which has direction compass image


Change the projection of the default rendering map based on the need. The HTML5 JavaScript Maps control supports various types of projections namely, Mercator, Rectangular, Miller, Eckert3, Eckert5, Eckert6, and Winkel3.

Title and subtitle

Add title and subtitles to visualize additional information on the Maps. Fonts and alignment of the title and subtitles can also be customized.

JavaScript Maps is rendered with title and subtitle


Customize the look and feel of a JavaScript map by changing the fill color, background, border, and opacity of shapes. Almost all the elements in the Maps are customizable. This control also provides built-in palettes with customizable options, by default.

JavaScript Maps is rendered with customized appearance


Export or print the rendered JavaScript Maps to save a local copy for further use.

Export JavaScript Maps illustration


Export the JavaScript Maps to a PDF document or in image formats such as SVG, PNG, and JPEG client-side.

Print JavaScript Maps illustration


Print the rendered maps directly from the browser.

Touch and Browser

JavaScript world map library Touch illustration

Touch support

All the features of JavaScript Maps work on touch devices with zero configuration. Use the touch features such as tooltip, drill-down, selection, highlight, pinch zooming, single tap zoom, and double tap zoom without any customization.

JavaScript Maps Responsive illustration


View JavaScript Maps control on various devices. Also hide specific elements in the maps for specific screen sizes by making very minimal changes in the map events.

JavaScript Maps Cross browser illustration

Cross browser support

Render JavaScript Maps component in all the modern browsers.

JavaScript Maps Code Example

Easily get started with JavaScript Maps using a few simple lines of HTML and TS code, as demonstrated below. Also explore our JavaScript Maps Example that shows you how to render the Maps in JavaScript.

<!DOCTYPE html>
<html lang="en">
    <title>Essential JS 2</title>
    <script src="node_modules/systemjs/dist/system.src.js" type="text/javascript"></script>
    <script src="system.config.js" type="text/javascript"></script>
    <div id="container"></div>
import { world_map } from './world_map';
import { Maps} from '@syncfusion/ej2-maps';

let map: Maps = new Maps({
    layers: [
            shapeData: world_map,
            dataSource: [
                { "Country": "China", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "United States", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "United Kingdom", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "Germany", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "Italy", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "India", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "Australia", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "Japan", "Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "France","Membership": "Permanent", "Color": "#feb24c" },
                { "Country": "Russia","Membership": "Permanent", "Color": "#feb24c"},
                { "Country": "Kazakhstan","Membership": "Non-Permanent", "Color": "#f03b20"},
                { "Country": "Poland","Membership": "Non-Permanent", "Color": "#f03b20"},
                { "Country": "Sweden","Membership": "Non-Permanent", "Color": "#f03b20"},
                { "Country": "South Africa","Membership": "Non-Permanent", "Color": "#f03b20"}],
            shapePropertyPath: 'name',
            shapeDataPath: 'Country',
            shapeSettings: {
                fill: '#E5E5E5',
                colorValuePath: 'Color'


Other supported frameworks

Maps component is also available in Blazor, React, Angular, and Vue frameworks. Check out the different Maps platforms from the links below,


Frequently Asked Questions

  • Render geometric or custom shapes using the GeoJson data.
  • Render maps from the map providers like Bing, OSM, and Google maps.
  • Add markers on maps at the specified latitude and longitude.
  • Fast-paced performance on zooming and panning with elegant animation.
  • One of the best JavaScript Maps in the market that offers feature-rich UI to interact with the software.
  • Simple configuration and API.
  • Supports all modern browsers.
  • Mobile-touch friendly and responsive.
  • Expansive learning resources such as demos, documentation and videos to learn quickly and get started with JavaScript Maps.

We do not sell the JavaScript Maps separately. It is only available for purchase as part of the Syncfusion JavaScript suite, which contains over 70 JavaScript components, including the Maps. A single developer license for the Syncfusion Essential Studio for JavaScript suite costs $995.00 USD, including one year of support and updates. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

You can find our JavaScript Maps demo here.

No, our 70+ JavaScript components, including Maps, are not sold individually, only as a single package. However, we have competitively priced the product so it only costs a little bit more than what some other vendors charge for their Maps alone. We have also found that, in our experience, our customers usually start off using one of our products and then expand to several products quickly, so we felt it was best to offer all 70+ JavaScript components for a flat fee of $995/developer. On top of this, we might be able to offer additional discounts based on currently active promotions. Please contact our sales team today to see if you qualify for any additional discounts.

No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue and five or fewer developers.

A good place to start would be our comprehensive getting started documentation.

Read independent,
authenticated reviews
on G2

Download Now Pricing

What do our customers say about us?

double quotes

We're using the file formats and Windows/JavaScript list controls a lot. They're fast, easy to use, and the documentation is good and contains examples. Tickets with questions or suggestions were answered within a day, so we're happy to use the Syncfusion libraries.
Daniel Persidok

Daniel Persidok

wpd onshore GmbH & Co. KG

double quotes

Using Syncfusion Angular and JavaScript controls makes front-end web development a piece of cake. Each component has many properties that can be configured as per your desire, methods that can be used to interact with the element, and a lot of events that trigger at different stages, which makes modifying your components according to the state of the application an easy task. Also, their support is amazing! They always offer a sample working project, which makes it very simple to solve your question about your code.
Carlos Rodriguez Garcia

Carlos Rodriguez Garcia


Transform your applications today by downloading our free evaluation version Download Free Trial


Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion is proud to hold the following industry awards.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile