百度地图坐标转化为GPS坐标

// /**
// * @date:2017-07-12 10:57
// * @auth:百度地图文档
// * 百度坐标系转换成标准GPS坐系
// * @param float $lnglat 坐标(如:106.426, 29.553404)
// * @return string 转换后的标准GPS值:
// */
function BD09LLtoWGS84($lnglat){ // 经度,纬度
$lnglat = explode(',', $lnglat);
list($x,$y) = $lnglat;
$Baidu_Server = "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x={$x}&y={$y}";
$result = @file_get_contents($Baidu_Server);
$json = json_decode($result);
if($json->error == 0){
$bx = base64_decode($json->x);
$by = base64_decode($json->y);
$GPS_x = 2 * $x - $bx;
$GPS_y = 2 * $y - $by;
return $GPS_x.','.$GPS_y;//经度,纬度
}else{
return $lnglat;
}
}

转载于:https://www.cnblogs.com/wangyaoyu/p/9431022.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GPS坐标(通常是指大地坐标系统下的经纬度)换为天地图坐标,需要将地球球面坐标换为墨卡托投影坐标。在Java中,可以使用开源库如JTS Topology Suite或者Geotools来进行这种坐标换。 以下是一个简化的步骤: 1. **获取GPS坐标**:从GPS接收器或者已知的数据源获取经度(longitude)和纬度(latitude)。 ```java double longitude = // GPS经度; double latitude = // GPS纬度; ``` 2. **导入地理坐标换库**,例如Geotools,它包含坐标系处理的功能。 ```java import org.geotools.geometry.CoordinateReferenceSystem; import org.opengis.referencing.crs.CoordinateReferenceSystemFactory; import org.locationtech.jts.geom.Coordinate; ``` 3. **创建坐标引用体系**,GPS坐标通常是WGS84坐标系统(EPSG:4326),天地图坐标通常采用Web Mercator(也称为EPSG:3857)。 ```java CoordinateReferenceSystem gpsCRS = ...; // WGS84 CoordinateReferenceSystem tmCRS = ...; // Web Mercator ``` 4. **创建坐标换器**,这一步会基于上述的坐标系创建一个换器实例。 ```java CoordinateTransform transform = CRS.find CoordinateTransform(gpsCRS, tmCRS); ``` 5. **坐标**,通过`transform.transform()`方法将GPS坐标换为天地图坐标。 ```java Coordinate mercatorCoord = new Coordinate(); transform.transform(new Coordinate(longitude, latitude), mercatorCoord); double xMercator = mercatorCoord.x; double yMercator = mercatorCoord.y; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值