UNPKG

global-mercator

Version:
548 lines (339 loc) 23 kB
[![Build Status](https://travis-ci.org/DenisCarriere/global-mercator.svg?branch=master)](https://travis-ci.org/DenisCarriere/global-mercator) [![Coverage Status](https://coveralls.io/repos/github/DenisCarriere/global-mercator/badge.svg?branch=master)](https://coveralls.io/github/DenisCarriere/global-mercator?branch=master) # Global Mercator A set of tools geospatial tools to help with TMS, Google (XYZ) Tiles. > This library is insipered by GDAL2Tiles, Google Summer of Code 2007 & 2008 # Installation Using npm: ```bash $ npm install --save global-mercator ``` In Node.js: ```javascript import * as mercator from 'global-mercator' import { latLngToMeters } from 'global-mercator' ``` <!-- Generated by documentation.js. Update this documentation by updating the source code. --> # latLngToMeters Converts [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates to [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates. **Parameters** - `lat` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitude (Parallels) in decimal degrees - `lng` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitude (Meridians) in decimal degrees - `zoom` **\[[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)]** Zoom level **Examples** ```javascript latLngToMeters({lat: 37, lng: 126}) //= Meters { mx: 14026255.83995247, my: 4439106.787250587 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Meters coordinates # metersToLatLng Converts [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates to [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates. **Parameters** - `mx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitudes (Meridians) in meters - `my` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitudes (Parallels) in decimal degrees - `zoom` **\[[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)]** Zoom level **Examples** ```javascript metersToLatLng({ mx: 14026255, my: 4439106 }) //= LatLng { lat: 36.99999435205559, lng: 125.99999245457859 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** LatLng coordinates # metersToPixels Converts [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates to [Pixels](https://msdn.microsoft.com/en-us/library/bb259689.aspx) coordinates. **Parameters** - `mx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitudes (Meridians) in meters - `my` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitudes (Parallels) in decimal degrees - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript metersToPixels({ mx: 14026255, my: 4439106, zoom: 13 }) //= Pixels { px: 1782579.1560447346, py: 1280877.3387406059, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Pixels coordinates # latLngToTile Converts [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates to TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `lat` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitude (Parallels) in decimal degrees - `lng` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitude (Meridians) in decimal degrees - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript latLngToTile({lat: 37, lng: 126, zoom: 13 }) //= Tile { tx: 6963, ty: 5003, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # latLngToGoogle Converts [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates to [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile. **Parameters** - `lat` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitude (Parallels) in decimal degrees - `lng` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitude (Meridians) in decimal degrees **Examples** ```javascript latLngToGoogle({lat: 37, lng: 126, zoom: 13 }) //= Google { x: 6963, y: 3188, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Google (XYZ) Tile # metersToTile Converts [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates to TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `mx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Longitudes (Meridians) in meters - `my` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Latitudes (Parallels) in decimal degrees - `zoom` **\[[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)]** Zoom level **Examples** ```javascript metersToTile({ mx: 14026255, my: 4439106, zoom: 13 }) //= Tile { tx: 6963, ty: 5003, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # pixelsToMeters Converts [Pixels](https://msdn.microsoft.com/en-us/library/bb259689.aspx) coordinates to [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates. **Parameters** - `px` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Pixels X - `py` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Pixels Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript pixelsToMeters({ px: 1782579, py: 1280877, zoom: 13 }) //= Meters { mx: 14026252.018101055, my: 4439099.526918683, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Meters coordinates # pixelsToTile Converts [Pixels](https://msdn.microsoft.com/en-us/library/bb259689.aspx) coordinates to TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `px` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Pixels X - `py` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Pixels Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript pixelsToTile({ px: 1782579, py: 1280877, zoom: 13 }) //= Tile { tx: 6963, ty: 5003, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # tileBbox Converts TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map) to [bbox](http://geojson.org/geojson-spec.html#bounding-boxes) in [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates. **Parameters** - `tx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile X - `ty` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript tileBbox({ tx: 6963, ty: 5003, zoom: 13 }) //= [ 14025277.445990417, 4437016.617897913, 14030169.415800672, 4441908.587708164 ] ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # tileLatLngBbox Converts TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map) to [bbox](http://geojson.org/geojson-spec.html#bounding-boxes) in [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates. **Parameters** - `tx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile X - `ty` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript tileLatLngBbox({ tx: 6963, ty: 5003, zoom: 13 }) //= [ 125.99121093749999, 36.98500309285596, 126.03515625, 37.020098201368135 ] ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # googleBbox Converts [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile to [bbox](http://geojson.org/geojson-spec.html#bounding-boxes) in [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates. **Parameters** - `x` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile X - `y` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript googleBbox({ x: 6963, y: 3188, zoom: 13 }) //= [ 14025277.445990417, 4437016.617897913, 14030169.415800672, 4441908.587708164 ] ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # googleLatLngBbox Converts [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile to [bbox](http://geojson.org/geojson-spec.html#bounding-boxes) in [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates. **Parameters** - `x` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile X - `y` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript googleLatLngBbox({ x: 6963, y: 3188, zoom: 13 }) //= [ 125.99121093749999, 36.98500309285596, 126.03515625, 37.020098201368135 ] ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # tileGoogle Converts TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map) to [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile. **Parameters** - `tx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile X - `ty` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript tileGoogle({ tx: 6963, ty: 5003, zoom: 13 }) //= Google { x: 6963, y: 3188, zoom: 13 } ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # googleTile Converts [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile to TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `x` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile X - `y` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript googleTile({ x: 6963, y: 3188, zoom: 13 }) //= Tile { tx: 6963, ty: 5003, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # googleQuadkey Converts [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile to [Quadkey](https://msdn.microsoft.com/en-us/library/bb259689.aspx). **Parameters** - `x` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile X - `y` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Google (XYZ) Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript googleQuadkey({ x: 6963, y: 3188, zoom: 13 }) //= '1321102330211' ``` Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Microsoft's Quadkey schema # tileQuadkey Converts TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map) to [QuadKey](QuadKey). **Parameters** - `tx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile X - `ty` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript tileQuadkey({ tx: 6963, ty: 5003, zoom: 13 }) //= '1321102330211' ``` Returns **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Microsoft's Quadkey schema # quadkeyTile Converts [Quadkey](https://msdn.microsoft.com/en-us/library/bb259689.aspx) to TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `quadkey` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Microsoft's Quadkey schema **Examples** ```javascript quadkeyTile('1321102330211') //= Tile { tx: 6963, ty: 5003, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # quadkeyGoogle Converts [Quadkey](https://msdn.microsoft.com/en-us/library/bb259689.aspx) to [Google](https://en.wikipedia.org/wiki/Tiled_web_map) (XYZ) Tile. **Parameters** - `quadkey` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Microsoft's Quadkey schema **Examples** ```javascript quadkeyGoogle('1321102330211') //= Google { x: 6963, y: 3188, zoom: 13 } ``` Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** Google (XYZ) Tile # bboxLatLngToMeters Converts [bbox](http://geojson.org/geojson-spec.html#bounding-boxes) from [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates to [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates **Parameters** - `bbox` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** extent in [minX, minY, maxX, maxY] order **Examples** ```javascript bboxLatLngToMeters([ 125, 35, 127, 37 ]) //= [ 13914936.349159198, 4163881.1440642904, 14137575.330745745, 4439106.787250587 ] ``` Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # validateTile Validates TMS [Tile](https://en.wikipedia.org/wiki/Tiled_web_map). **Parameters** - `tx` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile X - `ty` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** TMS Tile Y - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level - `name` **\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** name used for debugging message (optional, default `Tile`) **Examples** ```javascript validateTile({tx: 60, ty: 80, zoom: 5}) //= {tx: 60, ty: 80, zoom: 5} validateTile({tx: 60, ty: -43, zoom: 5}) //= Error: Tile <ty> must not be less than 0 ``` - Throws **any** Will throw an error if TMS Tile is not valid. Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** TMS Tile # validateZoom Validates [Zoom](http://wiki.openstreetmap.org/wiki/Zoom_levels) level. **Parameters** - `zoom` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Zoom level **Examples** ```javascript validateZoom(12) //= 12 validateZoom(-4) //= Error: <zoom> cannot be less than 1 validateZoom(30) //= Error: <zoom> cannot be greater than 23 ``` - Throws **any** Will throw an error if zoom is not valid. Returns **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** zoom Zoom level # validatePixels Validates [Pixels](https://msdn.microsoft.com/en-us/library/bb259689.aspx) coordinates. **Parameters** - `Pixels` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** coordinates **Examples** ```javascript validatePixels([-115, 44]) //= [-115, 44] ``` - Throws **any** Will throw an error if Pixels is not valid. Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** Pixels coordinates # validateMeters Validates [Meters](https://en.wikipedia.org/wiki/Web_Mercator) coordinates. **Parameters** - `Meters` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** coordinates **Examples** ```javascript validateMeters([-115, 44]) //= [-115, 44] ``` - Throws **any** Will throw an error if Meters is not valid. Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** Meters coordinates # validateLatLng Validates [LatLng](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates. **Parameters** - `LatLng` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** coordinates **Examples** ```javascript validateLatLng([-115, 44]) //= [-115, 44] ``` - Throws **any** Will throw an error if LatLng is not valid. Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** LatLng coordinates # validateLngLat Validates [LngLat](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinates. **Parameters** - `LngLat` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** coordinates **Examples** ```javascript validateLngLat([-115, 44]) //= [-115, 44] ``` - Throws **any** Will throw an error if LngLat is not valid. Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** LngLat coordinates # validateBbox Validates [bbox](http://geojson.org/geojson-spec.html#bounding-boxes). **Parameters** - `bbox` **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** extent in [minX, minY, maxX, maxY] order **Examples** ```javascript validateBbox([ -75, 44, -74, 45 ]) //= [ -75, 44, -74, 45 ] validateBbox([ -75, 44, -74 ]) //= Error: [bbox] must be an Array of 4 numbers ``` - Throws **any** Will throw an error if bbox is not valid. Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)>** bbox extent in [minX, minY, maxX, maxY] order # assertUndefined Assert undefined items within object. **Parameters** - `items` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** - `name` **\[[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)]** name used for debugging message **Examples** ```javascript assertUndefined({foo: 'bar'}) //= {foo: 'bar'} assertUndefined({foo: undefined}) //= Error: <foo> is required ``` - Throws **any** Will throw an error if any item in Object is undefined. Returns **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)** items