[ThreeMap](api-readme.md) > [Utils](api-modules-utils.md)



## Module: Utils

### Variables

* [merc](api-modules-utils.md#merc)
* [mercatorExtend](api-modules-utils.md#mercatorextend)
* [scale](api-modules-utils.md#scale)
* [tileExtend](api-modules-utils.md#tileextend)
* [tileRegex](api-modules-utils.md#tileregex)


### Functions

* [buildFromWorkerData](api-modules-utils.md#buildfromworkerdata)
* [doesTileExists](api-modules-utils.md#doestileexists)
* [getCameraPosition](api-modules-utils.md#getcameraposition)
* [getTileFromMerc](api-modules-utils.md#gettilefrommerc)
* [getTilePosition](api-modules-utils.md#gettileposition)
* [getTileScale](api-modules-utils.md#gettilescale)
* [getURLForTile](api-modules-utils.md#geturlfortile)
* [getZoom](api-modules-utils.md#getzoom)
* [getZoomLevel](api-modules-utils.md#getzoomlevel)
* [intersects](api-modules-utils.md#intersects)
* [ll2merc](api-modules-utils.md#ll2merc)
* [merc2ll](api-modules-utils.md#merc2ll)
* [readStyle](api-modules-utils.md#readstyle)
* [realTile](api-modules-utils.md#realtile)
* [removeTile](api-modules-utils.md#removetile)
* [tileBounds](api-modules-utils.md#tilebounds)



---
## Variables
<a id="merc"></a>

### «Const» merc

**●  merc**:  *`SphericalMercator`*  =  new SphericalMercator({
  size: 2048,
})

*Defined in [utils.ts:29](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L29)*



SphericalMercator library instance for latLng to mercator coordinates conversion.




___

<a id="mercatorextend"></a>

### «Const» mercatorExtend

**●  mercatorExtend**:  *`number`*  = 20037510

*Defined in [utils.ts:17](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L17)*



X and y size of Mercator map.




___

<a id="scale"></a>

### «Const» scale

**●  scale**:  *`number`*  =  mercatorExtend / tileExtend

*Defined in [utils.ts:25](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L25)*



Pre-calculated scale (tile to mercator size).




___

<a id="tileextend"></a>

### «Const» tileExtend

**●  tileExtend**:  *`number`*  = 2048

*Defined in [utils.ts:21](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L21)*



X and y size of tile.




___

<a id="tileregex"></a>

### «Const» tileRegex

**●  tileRegex**:  *`RegExp`*  =  /{([zxy])}/g

*Defined in [utils.ts:35](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L35)*



Regular expression for matching tile properties in url.




___


## Functions
<a id="buildfromworkerdata"></a>

###  buildFromWorkerData

► **buildFromWorkerData**(data: *[ITileBuffers](api-interfaces-interfaces.itilebuffers.md)*): `void`



*Defined in [utils.ts:229](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L229)*



Processes data returned from worker & creates tile's mesh.
*__example__*: `buildFromWorkerData({...});`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| data | [ITileBuffers](api-interfaces-interfaces.itilebuffers.md)   |  Position, color & normal buffers generated by WebWorker. |





**Returns:** `void`





___

<a id="doestileexists"></a>

###  doesTileExists

► **doesTileExists**(quadkey: *`string`*): `boolean`



*Defined in [utils.ts:155](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L155)*



Checks if tile exists in grid.
*__example__*: `doesTileExists('0123');`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| quadkey | `string`   |  Tile's quadkey. |





**Returns:** `boolean`





___

<a id="getcameraposition"></a>

###  getCameraPosition

► **getCameraPosition**(): `number`[]



*Defined in [utils.ts:211](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L211)*



Returns camera base plane (x & z) position.
*__example__*: `getCameraPosition()`;`





**Returns:** `number`[]





___

<a id="gettilefrommerc"></a>

###  getTileFromMerc

► **getTileFromMerc**(pos: *`number`[]*, z: *`number`*): [TilePrimitive](api-modules-interfaces.md#tileprimitive)



*Defined in [utils.ts:129](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L129)*



Returns tile coordinates for given mercator x & y and zoom level values.
*__example__*: `getTileFromMerc([130533.56363, 106826.5536], 14);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| pos | `number`[]   |  Array of mercator x & y coordinates. |
| z | `number`   |  Specified zoom level. |





**Returns:** [TilePrimitive](api-modules-interfaces.md#tileprimitive)





___

<a id="gettileposition"></a>

###  getTilePosition

► **getTilePosition**(id: *`string`*): `number`[]



*Defined in [utils.ts:176](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L176)*



Returns given tile's center in mercator coordinates.
*__example__*: `getTilePosition('0123');`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| id | `string`   |  Tile's quadkey. |





**Returns:** `number`[]





___

<a id="gettilescale"></a>

###  getTileScale

► **getTileScale**(id: *`string`*): `number`



*Defined in [utils.ts:196](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L196)*



Returns number representing x and y scale for resizing tile local coordinates to mercator coordinates.
*__example__*: `getTileScale('0123');`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| id | `string`   |  Tile's quadkey. |





**Returns:** `number`





___

<a id="geturlfortile"></a>

###  getURLForTile

► **getURLForTile**(tileObject: *[ITileObject](api-interfaces-interfaces.itileobject.md)*): `string`



*Defined in [utils.ts:43](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L43)*



Get url for tile object.
*__example__*: `getURLForTile({x: 1, y: 3, z: 7);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| tileObject | [ITileObject](api-interfaces-interfaces.itileobject.md)   |  Tile primitive represented as object of x, y, z values. |





**Returns:** `string`





___

<a id="getzoom"></a>

###  getZoom

► **getZoom**(): `number`



*Defined in [utils.ts:219](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L219)*



Returns distance from controls' target to camera.
*__example__*: `getZoom();`





**Returns:** `number`





___

<a id="getzoomlevel"></a>

###  getZoomLevel

► **getZoomLevel**(distance: *`number`*): `number`



*Defined in [utils.ts:141](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L141)*



Converts distance from camera to controls target into zoom level.
*__example__*: `getZoomLevel(357200);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| distance | `number`   |  Distance between camera and controls target. |





**Returns:** `number`





___

<a id="intersects"></a>

###  intersects

► **intersects**(bounds: *`Box3`*): `boolean`



*Defined in [utils.ts:270](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L270)*



Checks if bounding box intersects camera's frustum.
*__example__*: `intersects(new THREE.Box3(...));`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| bounds | `Box3`   |  Bounding box. |





**Returns:** `boolean`





___

<a id="ll2merc"></a>

###  ll2merc

► **ll2merc**(ll: *`number`[]*): `number`[]



*Defined in [utils.ts:107](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L107)*



Convert longitude - latitude coordinates to mercator coordinates.
*__example__*: `ll2merc([77.35262, 40.2525]);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| ll | `number`[]   |  Array of longitude & latitude coordinates. |





**Returns:** `number`[]
Array of mercator x & y coordinates.





___

<a id="merc2ll"></a>

###  merc2ll

► **merc2ll**(xy: *`number`[]*): `number`[]



*Defined in [utils.ts:118](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L118)*



Converts mercator coordinates to longitude - latitude coordinates.
*__example__*: `ThreeMap.mercToLonLat([462073.1353, 295052.562]);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| xy | `number`[]   |  Array of mercator x & y coordinates. |





**Returns:** `number`[]
Array of longitude & latitude coordinates.





___

<a id="readstyle"></a>

###  readStyle

► **readStyle**(style: *[IStyle](api-interfaces-interfaces.istyle.md)*): [IStyle](api-interfaces-interfaces.istyle.md)



*Defined in [utils.ts:64](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L64)*



Parses ThreeMap style configuration and applies default values.
*__example__*: `readStyle({...});`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| style | [IStyle](api-interfaces-interfaces.istyle.md)   |  Style configuration. |





**Returns:** [IStyle](api-interfaces-interfaces.istyle.md)





___

<a id="realtile"></a>

###  realTile

► **realTile**(tile: *[TilePrimitive](api-modules-interfaces.md#tileprimitive)*): `boolean`



*Defined in [utils.ts:165](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L165)*



Checks if tile coordinates are in specified bounds (max is 2^zoom level).
*__example__*: `realTile([3,4,4]);`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| tile | [TilePrimitive](api-modules-interfaces.md#tileprimitive)   |  Tile to be checked. |





**Returns:** `boolean`





___

<a id="removetile"></a>

###  removeTile

► **removeTile**(quadkey: *`string`*): `void`



*Defined in [utils.ts:279](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L279)*



Removes tile from grid & disposes its geometry.
*__example__*: `removeTile('0123');`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| quadkey | `string`   |  Quadkey of tile to remove. |





**Returns:** `void`





___

<a id="tilebounds"></a>

###  tileBounds

► **tileBounds**(tile: *`string`*): `Box3`



*Defined in [utils.ts:254](https://github.com/areknawo/ThreeMap/blob/master/src/utils.ts#L254)*



Returns bounding box for tile.
*__example__*: `tileBounds('0123');`



**Parameters:**

| Param | Type | Description |
| ------ | ------ | ------ |
| tile | `string`   |  Tile's quadkey to get bounds for. |





**Returns:** `Box3`





___


