UNPKG

@syncfusion/ej2-maps

Version:

The Maps component is used to visualize the geographical data and represent the statistical data of a particular geographical area on earth with user interactivity, and provides various customizing options

52 lines (48 loc) 1.55 kB
import { Maps } from '../maps'; import { Tile } from '../index'; import { isNullOrUndefined } from '@syncfusion/ej2-base'; /** * Bing map src doc */ export class BingMap { /** * map instance */ private maps: Maps; public subDomains: string[]; public imageUrl: string; public maxZoom: string; constructor(maps: Maps) { this.maps = maps; } public getBingMap(tile: Tile, key: string, type: string, language: string, imageUrl: string, subDomains: string[]): string { let quadKey: string = ''; const maxZoom: number = Math.min(this.maps.tileZoomLevel, parseInt(this.maxZoom, 10)); for (let i: number = maxZoom; i > 0; i--) { let digit: number = 0; const mask: number = 1 << (i - 1); if ((tile.x & mask) !== 0) { digit++; } if ((tile.y & mask) !== 0) { digit += 2; } quadKey = quadKey + '' + digit; } if (!isNullOrUndefined(subDomains)) { const subDomain: string = subDomains[Math.min(parseInt(quadKey.substr(quadKey.length - 1, 1), 10), subDomains.length)]; imageUrl = imageUrl.replace('{quadkey}', quadKey).replace('{subdomain}', subDomain); return imageUrl += '&mkt=' + language + '&ur=IN&Key=' + key; } else { return ''; } } /** * @returns {void} * @private */ public destroy(): void { this.maps = null; this.subDomains = []; } }