Как использовать JavaScript для конвертирования координат Google Maps в координаты 2GIS и наоборот?

Как я могу конвертировать координаты между Google Maps и 2GIS, учитывая различные форматы, такие как "google-south" и "2gis-south"?
  • 31 августа 2023 г. 10:16
Ответы на вопрос 6
Для конвертации координат между Google Maps (WGS84) и 2GIS (Pseudo Mercator) вы можете использовать следующий код на JavaScript:

1. Конвертация Google Maps координат в 2GIS координаты:

```javascript
function googleTo2GIS(latitude, longitude) {
  const x = longitude * 111319.49079327358;
  const y = Math.log(Math.tan((90 + latitude) * Math.PI / 360)) / (Math.PI / 180);
  const y = y * 111319.49079327358;
  return { x, y };
}
```

Пример использования:

```javascript
const googleLatitude = 37.7749;
const googleLongitude = -122.4194;
const convertedCoordinates = googleTo2GIS(googleLatitude, googleLongitude);
console.log(convertedCoordinates.x, convertedCoordinates.y);
```

2. Конвертация 2GIS координат в Google Maps координаты:

```javascript
function d2GSToGoogle(x, y) {
  const longitude = x / 111319.49079327358;
  const latitude = (Math.atan(Math.exp(y / 111319.49079327358 * Math.PI / 180)) * 360 / Math.PI) - 90;
  return { latitude, longitude };
}
```

Пример использования:

```javascript
const d2GISX = 12949755;
const d2GISY = 5503748;
const convertedCoordinates = d2GSToGoogle(d2GISX, d2GISY);
console.log(convertedCoordinates.latitude, convertedCoordinates.longitude);
```
Обратите внимание, что эти функции будут работать только с заданными форматами "google-south" и "2gis-south". Если у вас есть другие форматы координат, вам потребуется их предварительная обработка.
gm.south 
 dg.southWest[1]
gm.west 
 dg.southWest[0]
gm.north 
 dg.northEast[1]
gm.east 
 dg.northEast[0]
Похожие вопросы