Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
global-mercator
Advanced tools
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.
Another great simplistic tile library is tilebelt
.
npm
$ npm install --save global-mercator
web browser (ES5)
<script src="https://unpkg.com/global-mercator/docs/global-mercator.min.js"></script>
var tile = [10, 15, 8] // [x, y, zoom]
globalMercator.tileToBBox(tile)
// [ -165.937, -82.853, -164.531, -82.676 ]
Function | Description |
---|---|
lngLatToMeters(LngLat) | Converts LngLat coordinates to Meters coordinates. |
metersToLngLat(Meters) | Converts Meters coordinates to LngLat coordinates. |
metersToPixels(Meters, zoom) | Converts Meters coordinates to Pixels coordinates. |
lngLatToTile(LngLat, zoom) | Converts LngLat coordinates to TMS Tile. |
lngLatToGoogle(LngLat, zoom) | Converts LngLat coordinates to Google (XYZ) Tile. |
metersToTile(Meters, zoom) | Converts Meters coordinates to TMS Tile. |
pixelsToMeters(Pixels) | Converts Pixels coordinates to Meters coordinates. |
pixelsToTile(Pixels) | Converts Pixels coordinates to TMS Tile. |
tileToBBoxMeters(tile) | Converts TMS Tile to bbox in Meters coordinates. |
tileToBBox(tile) | Converts TMS Tile to bbox in LngLat coordinates. |
googleToBBoxMeters(google) | Converts Google (XYZ) Tile to bbox in Meters coordinates. |
googleToBBox(google) | Converts Google (XYZ) Tile to bbox in LngLat coordinates. |
tileToGoogle(tile) | Converts TMS Tile to Google (XYZ) Tile. |
googleToTile(google) | Converts Google (XYZ) Tile to TMS Tile. |
googleToQuadkey(google) | Converts Google (XYZ) Tile to Quadkey. |
tileToQuadkey(tile) | Converts TMS Tile to QuadKey. |
quadkeyToTile(quadkey) | Converts Quadkey to TMS Tile. |
quadkeyToGoogle(quadkey) | Converts Quadkey to Google (XYZ) Tile. |
hash(tile) | Hash tile for unique id key |
validateTile(tile) | Validates TMS Tile |
validateZoom(zoom) | Validates Zoom level |
validateLngLat(LngLat) | Validates LngLat coordinates |
validatePixels(Pixels) | Validates Pixels coordinates |
maxBBox(BBox[]) | Maximum extent of BBox |
Hash tile for unique id key
Parameters
tile
Tile [x, y, z]Examples
var id = mercator.hash([312, 480, 4])
//=5728
Returns number hash
Converts BBox to Center
Parameters
bbox
BBox [west, south, east, north] coordinatesExamples
var center = mercator.bboxToCenter([90, -45, 85, -50])
//= [ 87.5, -47.5 ]
Returns LngLat center
Converts LngLat coordinates to Meters coordinates.
Parameters
lnglat
LngLat Longitude (Meridians) & Latitude (Parallels) in decimal degreesvalidate
[boolean] validates LatLng coordinates (optional, default false
)Examples
var meters = mercator.lngLatToMeters([126, 37])
//=[ 14026255.8, 4439106.7 ]
Returns Meters Meters coordinates
Converts Meters coordinates to LngLat coordinates.
Parameters
meters
Meters Meters in Mercator [x, y]Examples
var lnglat = mercator.metersToLngLat([14026255, 4439106])
//=[ 126, 37 ]
Returns LngLat LngLat coordinates
Converts Meters coordinates to Pixels coordinates.
Parameters
meters
Meters Meters in Mercator [x, y]zoom
number Zoom leveltileSize
[number] Tile size (optional, default 256
)Examples
var pixels = mercator.metersToPixels([14026255, 4439106], 13)
//=[ 1782579.1, 1280877.3, 13 ]
Returns Pixels Pixels coordinates
Converts LngLat coordinates to TMS Tile.
Parameters
lnglat
LngLat Longitude (Meridians) & Latitude (Parallels) in decimal degreeszoom
number Zoom levelvalidate
[boolean] validates LatLng coordinates (optional, default false
)Examples
var tile = mercator.lngLatToTile([126, 37], 13)
//=[ 6963, 5003, 13 ]
Returns Tile TMS Tile
Converts LngLat coordinates to Google (XYZ) Tile.
Parameters
lnglat
LngLat Longitude (Meridians) & Latitude (Parallels) in decimal degreeszoom
number Zoom levelvalidate
[boolean] validates LatLng coordinates (optional, default false
)Examples
var google = mercator.lngLatToGoogle([126, 37], 13)
//=[ 6963, 3188, 13 ]
Returns Google Google (XYZ) Tile
Converts Meters coordinates to TMS Tile.
Parameters
meters
Meters Meters in Mercator [x, y]zoom
number Zoom levelExamples
var tile = mercator.metersToTile([14026255, 4439106], 13)
//=[ 6963, 5003, 13 ]
Returns Tile TMS Tile
Converts Pixels coordinates to Meters coordinates.
Parameters
pixels
Pixels Pixels [x, y, zoom]tileSize
[number] Tile size (optional, default 256
)validate
[boolean] validates Pixels coordinates (optional, default false
)Examples
var meters = mercator.pixelsToMeters([1782579, 1280877, 13])
//=[ 14026252.0, 4439099.5 ]
Returns Meters Meters coordinates
Converts Pixels coordinates to TMS Tile.
Parameters
pixels
Pixels Pixels [x, y, zoom]tileSize
[number] Tile size (optional, default 256
)validate
[boolean] validates Pixels coordinates (optional, default false
)Examples
var tile = mercator.pixelsToTile([1782579, 1280877, 13])
//=[ 6963, 5003, 13 ]
Returns Tile TMS Tile
Converts TMS Tile to bbox in Meters coordinates.
Parameters
tile
Tile Tile [x, y, zoom]x
number TMS Tile Xy
number TMS Tile Yzoom
number Zoom leveltileSize
[number] Tile size (optional, default 256
)validate
[boolean] validates Tile (optional, default false
)Examples
var bbox = mercator.tileToBBoxMeters([6963, 5003, 13])
//=[ 14025277.4, 4437016.6, 14030169.4, 4441908.5 ]
Returns BBox bbox extent in [minX, minY, maxX, maxY] order
Converts TMS Tile to bbox in LngLat coordinates.
Parameters
tile
Tile Tile [x, y, zoom]x
number TMS Tile Xy
number TMS Tile Yzoom
number Zoom levelvalidate
[boolean] validates Tile (optional, default false
)Examples
var bbox = mercator.tileToBBox([6963, 5003, 13])
//=[ 125.991, 36.985, 126.035, 37.020 ]
Returns BBox bbox extent in [minX, minY, maxX, maxY] order
Converts Google (XYZ) Tile to bbox in Meters coordinates.
Parameters
google
Google Google [x, y, zoom]Examples
var bbox = mercator.googleToBBoxMeters([6963, 3188, 13])
//=[ 14025277.4, 4437016.6, 14030169.4, 4441908.5 ]
Returns BBox bbox extent in [minX, minY, maxX, maxY] order
Converts Google (XYZ) Tile to bbox in LngLat coordinates.
Parameters
google
Google Google [x, y, zoom]Examples
var bbox = mercator.googleToBBox([6963, 3188, 13])
//=[ 125.991, 36.985, 126.035, 37.020 ]
Returns BBox bbox extent in [minX, minY, maxX, maxY] order
Converts TMS Tile to Google (XYZ) Tile.
Parameters
tile
Tile Tile [x, y, zoom]validate
[boolean] validates Tile (optional, default false
)Examples
var google = mercator.tileToGoogle([6963, 5003, 13])
//=[ 6963, 3188, 13 ]
Returns Google Google (XYZ) Tile
Converts Google (XYZ) Tile to TMS Tile.
Parameters
google
Google Google [x, y, zoom]Examples
var tile = mercator.googleToTile([6963, 3188, 13])
//=[ 6963, 5003, 13 ]
Returns Tile TMS Tile
Converts Google (XYZ) Tile to Quadkey.
Parameters
google
Google Google [x, y, zoom]Examples
var quadkey = mercator.googleToQuadkey([6963, 3188, 13])
//='1321102330211'
Returns string Microsoft's Quadkey schema
Converts TMS Tile to QuadKey.
Parameters
tile
Tile Tile [x, y, zoom]validate
[boolean] validates Tile (optional, default false
)Examples
var quadkey = mercator.tileToQuadkey([6963, 5003, 13])
//='1321102330211'
Returns string Microsoft's Quadkey schema
Converts Quadkey to TMS Tile.
Parameters
quadkey
string Microsoft's Quadkey schemaExamples
var tile = mercator.quadkeyToTile('1321102330211')
//=[ 6963, 5003, 13 ]
Returns Tile TMS Tile
Converts Quadkey to Google (XYZ) Tile.
Parameters
quadkey
string Microsoft's Quadkey schemaExamples
var google = mercator.quadkeyToGoogle('1321102330211')
//=[ 6963, 3188, 13 ]
Returns Google Google (XYZ) Tile
Converts BBox from LngLat coordinates to Meters coordinates
Parameters
bbox
BBox extent in [minX, minY, maxX, maxY] orderExamples
var meters = mercator.bboxToMeters([ 125, 35, 127, 37 ])
//=[ 13914936.3, 4163881.1, 14137575.3, 4439106.7 ]
Returns BBox bbox extent in [minX, minY, maxX, maxY] order
Validates TMS Tile.
Parameters
tile
Tile Tile [x, y, zoom]Examples
mercator.validateTile([60, 80, 12])
//=[60, 80, 12]
mercator.validateTile([60, -43, 5])
//= Error: Tile <y> must not be less than 0
mercator.validateTile([25, 60, 3])
//= Error: Illegal parameters for tile
Returns Tile TMS Tile
Validates Zoom level
Parameters
zoom
number Zoom levelExamples
mercator.validateZoom(12)
//=12
mercator.validateZoom(-4)
//= Error: <zoom> cannot be less than 0
mercator.validateZoom(32)
//= Error: <zoom> cannot be greater than 30
Returns number zoom Zoom level
Validates LngLat coordinates
Parameters
lnglat
LngLat Longitude (Meridians) & Latitude (Parallels) in decimal degreesExamples
mercator.validateLngLat([-115, 44])
//= [ -115, 44 ]
mercator.validateLngLat([-225, 44])
//= Error: LngLat [lng] must be within -180 to 180 degrees
Returns LngLat LngLat coordinates
Validates Pixels coordinates
Parameters
Examples
mercator.validatePixels([-115, 44])
Returns Pixels Pixels coordinates
Maximum extent of BBox
Parameters
array
(BBox | Array<BBox>) BBox [west, south, east, north]Examples
var bbox = mercator.maxBBox([[-20, -30, 20, 30], [-110, -30, 120, 80]])
//=[-110, -30, 120, 80]
Returns BBox Maximum BBox
2.4.0 - 2017-03-10
throw Error
in Lat & Lng validation processFAQs
Tools to help with TMS, Quadkey & Google (XYZ) Tiles
The npm package global-mercator receives a total of 741 weekly downloads. As such, global-mercator popularity was classified as not popular.
We found that global-mercator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.