---
title: Class: GeoProjection
source: https://vjmap.com/doc/Class_GeoProjection.html
---

# Class: GeoProjection

`GeoProjection` 地理坐标投影.

Example:
```typescript
const mapExtent = new GeoBounds(new GeoPoint(10, 20), new GeoPoint(80, 90));
const prj = new GeoProjection(mapExtent);
const pt = [30, 30];
const latlng = prj.toLngLat(pt);
const pt_geo = prj.fromLngLat(latlng);
const mkt = prj.toMercator(pt);
const pt_mkt = prj.fromMercator(mkt);
```

### Hierarchy

- [*Projection*](#classesdefaultprojectionmd)

  ↳ **GeoProjection**

### Table of contents

#### Constructors

- [constructor](#constructor)

#### Properties

- [mapExtent](#mapextent)
- [EARTH\_BOUNDS](#earth_bounds)
- [EQUATORIAL\_SEMIPERIMETER](#equatorial_semiperimeter)

#### Methods

- [fromLngLat](#fromlnglat)
- [fromMercator](#frommercator)
- [fromMeter](#frommeter)
- [getMapExtent](#getmapextent)
- [setExtent](#setextent)
- [toLngLat](#tolnglat)
- [toMercator](#tomercator)
- [toMeter](#tometer)
- [lngLat2Mercator](#lnglat2mercator)
- [mercator2LngLat](#mercator2lnglat)

### Constructors

#### constructor

\+ **new GeoProjection**(`extent`: [*GeoBounds*](#classesdefaultgeoboundsmd)): [*GeoProjection*](#classesdefaultgeoprojectionmd)

 `GeoBounds` 构造函数

**`extent`** extent - 地图地理范围.

##### Parameters

| Name | Type |
| :------ | :------ |
| `extent` | [*GeoBounds*](#classesdefaultgeoboundsmd) |

**Returns:** [*GeoProjection*](#classesdefaultgeoprojectionmd)

Overrides: [Projection](#classesdefaultprojectionmd)

### Properties

#### mapExtent

• **mapExtent**: [*GeoBounds*](#classesdefaultgeoboundsmd)

地图地理范围.

___

#### EARTH\_BOUNDS

▪ `Static` **EARTH\_BOUNDS**: [*number*, *number*, *number*, *number*]

The equatorial semi perimeter in meters.

Inherited from: [Projection](#classesdefaultprojectionmd).[EARTH_BOUNDS](#earth_bounds)

___

#### EQUATORIAL\_SEMIPERIMETER

▪ `Static` **EQUATORIAL\_SEMIPERIMETER**: *number*= 20037508.3427892

The equatorial semi perimeter in meters.

Inherited from: [Projection](#classesdefaultprojectionmd).[EQUATORIAL_SEMIPERIMETER](#equatorial_semiperimeter)

### Methods

#### fromLngLat

▸ **fromLngLat**(`input`: [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[]): [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[]

经纬度转地图地理坐标

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `input` | [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[] | 经纬度坐标点 |

**Returns:** [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[]

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### fromMercator

▸ **fromMercator**(`input`: [*GeoPointLike*](#geopointlike)): [*number*, *number*]

墨卡托(epsg:3857)转坐标

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `input` | [*GeoPointLike*](#geopointlike) | 墨卡托坐标点 |

**Returns:** [*number*, *number*]

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### fromMeter

▸ **fromMeter**(`meter`: *number*): *number*

把米转化为距离

##### Parameters

| Name | Type |
| :------ | :------ |
| `meter` | *number* |

**Returns:** *number*

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### getMapExtent

▸ **getMapExtent**(): [*GeoBounds*](#classesdefaultgeoboundsmd)

得到地图范围

**Returns:** [*GeoBounds*](#classesdefaultgeoboundsmd)

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### setExtent

▸ **setExtent**(`extent`: [*GeoBounds*](#classesdefaultgeoboundsmd)): *void*

 设置地图范围

**`extent`** extent - 地图地理范围.

##### Parameters

| Name | Type |
| :------ | :------ |
| `extent` | [*GeoBounds*](#classesdefaultgeoboundsmd) |

**Returns:** *void*

___

#### toLngLat

▸ **toLngLat**(`input`: [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[]): LngLatLike

地图地理坐标转经纬度

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `input` | [*GeoPoint*](#classesdefaultgeopointmd) \| *Feature*<Geometry \| GeometryCollection, Properties\> \| *FeatureCollection*<Geometry \| GeometryCollection, Properties\> \| Geometry \| GeometryCollection \| [*number*, *number*] \| [*number*, *number*, *number*] \| { `x`: *number* ; `y`: *number* ; `z?`: *number*  } \| { `lat`: *number* ; `lng`: *number*  } \| { `lat`: *number* ; `lon`: *number*  } \| [*GeoPointLike*](#geopointlike)[] | 地理坐标点 |

**Returns:** LngLatLike

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### toMercator

▸ **toMercator**(`input`: [*GeoPointLike*](#geopointlike)): [*number*, *number*]

坐标转墨卡托(epsg:3857)

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `input` | [*GeoPointLike*](#geopointlike) | 坐标点 |

**Returns:** [*number*, *number*]

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### toMeter

▸ **toMeter**(`dist`: *number*): *number*

把距离转化为米

##### Parameters

| Name | Type |
| :------ | :------ |
| `dist` | *number* |

**Returns:** *number*

Overrides: [Projection](#classesdefaultprojectionmd)

___

#### lngLat2Mercator

▸ `Static` **lngLat2Mercator**(`input`: [*GeoPointLike*](#geopointlike)): [*number*, *number*]

经纬度转墨卡托 .

##### Parameters

| Name | Type |
| :------ | :------ |
| `input` | [*GeoPointLike*](#geopointlike) |

**Returns:** [*number*, *number*]

Inherited from: [Projection](#classesdefaultprojectionmd)

___

#### mercator2LngLat

▸ `Static` **mercator2LngLat**(`input`: [*GeoPointLike*](#geopointlike)): [*number*, *number*]

墨卡托转经纬度 .

##### Parameters

| Name | Type |
| :------ | :------ |
| `input` | [*GeoPointLike*](#geopointlike) |

**Returns:** [*number*, *number*]

Inherited from: [Projection](#classesdefaultprojectionmd)


<a name="classesgladapterlayermd"></a>

[vjmap](#readmemd) / [Exports](#modulesmd) / GlAdapterLayer
