Your search did not match any results.

Providers and Types


By default, the Map widget uses Google Maps as a map provider. It can use Bing Maps or Google Static Maps instead. You can change the provider using the provider option.

In addition, the Map widget supports the following map types: «hybrid», «satellite» and «roadmap», which is used by default. To change the map type, use the type option.

Copy to CodeSandBox
<dx-map #map center="Brooklyn Bridge,New York,NY" [zoom]="14" [height]="400" width="100%" [provider]="mapProviders[0].key" [key]="keys" [type]="mapTypes[0].key"> </dx-map> <div class="options"> <div class="caption">Options</div> <div class="option"> <span>Map Provider</span> <dx-select-box [dataSource]="mapProviders" displayExpr="name" valueExpr="key" [(value)]="map.provider"> </dx-select-box> </div> <div class="option"> <span>Map Type</span> <dx-select-box [dataSource]="mapTypes" displayExpr="name" valueExpr="key" [(value)]="map.type"> </dx-select-box> </div> </div>
import { NgModule, Component, enableProdMode } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { DxMapModule, DxSelectBoxModule } from 'devextreme-angular'; import { MapSetting, Service } from './app.service'; if(!/localhost/.test( { enableProdMode(); } @Component({ selector: 'demo-app', providers: [ Service ], templateUrl: 'app/app.component.html', styleUrls: ['app/app.component.css'], preserveWhitespaces: true }) export class AppComponent { mapTypes: MapSetting[]; mapProviders: MapSetting[]; keys = {}; constructor(service: Service) { this.mapTypes = service.getMapTypes(); this.mapProviders = service.getMapProviders(); // NOTE: Specify your map API keys for every used provider //this.keys["bing"] = "YOUR_BING_MAPS_API_KEY"; //this.keys["google"] = "YOUR_GOOGLE_MAPS_API_KEY"; //this.keys["googleStatic"] = "YOUR_GOOGLE_STATIC_MAPS_API_KEY"; } } @NgModule({ imports: [ BrowserModule, DxMapModule, DxSelectBoxModule ], declarations: [AppComponent], bootstrap: [AppComponent] }) export class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
::ng-deep .options { padding: 20px; background-color: rgba(191, 191, 191, 0.15); margin-top: 20px; } ::ng-deep .caption { font-size: 18px; font-weight: 500; } ::ng-deep .option { margin-top: 10px; } ::ng-deep .option > span { display: inline-block; width: 100px; } ::ng-deep .option > .dx-selectbox { width: 100%; max-width: 350px; display: inline-block; vertical-align: middle; }
import { Injectable } from '@angular/core'; export class MapSetting { key: string; name: string; } let mapTypes: MapSetting[] = [{ key: "roadmap", name: "Default Map" }, { key: "satellite", name: "Photographic Map" }, { key: "hybrid", name: "Hybrid Map" }]; let mapProviders: MapSetting[] = [{ key: "bing", name: "Bing Map" }, { key: "google", name: "Google Dynamic Map" }, { key: "googleStatic", name: "Google Static Map" }]; @Injectable() export class Service { getMapTypes(): MapSetting[] { return mapTypes; } getMapProviders(): MapSetting[] { return mapProviders; } }
// In real applications, you should not transpile code in the browser. You can see how to create your own application with Angular and DevExtreme here: // System.config({ transpiler: 'ts', typescriptOptions: { module: "commonjs", emitDecoratorMetadata: true, experimentalDecorators: true }, meta: { 'typescript': { "exports": "ts" } }, paths: { 'npm:': '' }, map: { 'ts': 'npm:plugin-typescript@7.0.6/lib/plugin.js', 'typescript': 'npm:typescript@2.2.2/lib/typescript.js', '@angular/core': 'npm:@angular/core@7.1.3/bundles/core.umd.js', '@angular/common': 'npm:@angular/common@7.1.3/bundles/common.umd.js', '@angular/compiler': 'npm:@angular/compiler@7.1.3/bundles/compiler.umd.js', '@angular/platform-browser': 'npm:@angular/platform-browser@7.1.3/bundles/platform-browser.umd.js', '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic@7.1.3/bundles/platform-browser-dynamic.umd.js', '@angular/router': 'npm:@angular/router@7.1.3/bundles/router.umd.js', '@angular/forms': 'npm:@angular/forms@7.1.3/bundles/forms.umd.js', '@angular/common/http': 'npm:@angular/common@7.1.3/bundles/common-http.umd.js', 'tslib': 'npm:tslib/tslib.js', 'rxjs': 'npm:rxjs@6.3.3', 'rxjs/operators': 'npm:rxjs@6.3.3/operators', 'devextreme': 'npm:devextreme@18.2', 'jszip': 'npm:jszip@3.1.3/dist/jszip.min.js', 'quill': 'npm:quill@1.3.6/dist/quill.js', 'devextreme-angular': 'npm:devextreme-angular@18.2' }, packages: { 'app': { main: './app.component.ts', defaultExtension: 'ts' }, 'devextreme': { defaultExtension: 'js' }, 'rxjs': { main: 'index.js', defaultExtension: 'js' }, 'rxjs/operators': { main: 'index.js', defaultExtension: 'js' }, 'devextreme-angular': { main: 'index.js', defaultExtension: 'js' } } });
<!DOCTYPE html> <html xmlns=""> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" /> <link rel="stylesheet" type="text/css" href="" /> <link rel="dx-theme" data-theme="generic.light" href="" /> <link rel="dx-theme" data-theme="android5.light" href="" /> <link rel="dx-theme" data-theme="ios7.default" href="" /> <link rel="dx-theme" data-theme="" href="" /> <link rel="dx-theme" data-theme="win10.white" href="" /> <script src=""></script> <script src=""></script> <script src=""></script> <script src=""></script> <script src="config.js"></script> <script> System.import('app').catch(console.error.bind(console)); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <demo-app>Loading...</demo-app> </div> </body> </html>