Android com.baidu.mapapi.model 如何WGS-84坐标转换为GCJ-02坐标
时间: 2024-09-30 13:14:33 浏览: 41
在Android中,百度地图API提供了一些工具类来进行坐标系统之间的转换,如从WGS-84(世界大地坐标系)到GCJ-02(火星坐标系)。`com.baidu.mapapi.model.CoordTransform` 类可以帮助完成这个转换过程。以下是一个基本步骤:
1. 首先,你需要创建 `CoordTransform` 的实例:
```java
CoordTransform transform = new CoordTransform();
```
2. 初始化 `transform`,通常需要传入一个 `Geocoding` 对象(它包含了 WGS-84 初始坐标):
```java
Location location = new Location("WGS84");
location.setLatitude(lat);
location.setLongitude(lon); // lat 和 lon 是 WGS-84 坐标
transform.fromWgs84(location);
```
3. 调用 `transform.toRectFromWorld` 或 `toLocationFromWorld` 将 WGS-84 转换为目标坐标系,比如 GCJ-02:
```java
Location gcjLocation = transform.toLocationFromWorld(location.getLongitude(), location.getLatitude());
double gcjLon = gcjLocation.getLongitude();
double gcjLat = gcjLocation.getLatitude(); // 这就是 GCJ-02 坐标
```
注意:GCJ-02坐标并非严格的经纬度系统,而是一种基于 WGS-84 的加偏算法,主要用于中国区域内的定位。实际使用时,Baidu Maps API可能会提供更精确的转换服务。
阅读全文