经纬度批量转cgcs2000 代码
时间: 2023-09-05 11:09:03 浏览: 233
以下是经纬度批量转CGCS2000的Python代码示例,需要使用到pyproj库:
```python
import pyproj
# 定义转换器
wgs84 = pyproj.Proj('EPSG:4326')
cgcs2000 = pyproj.Proj('EPSG:4490')
# 定义经纬度列表
lons = [116.397458, 120.153576, 113.264434]
lats = [39.909729, 30.287459, 23.129163]
# 转换经纬度
x, y, z = pyproj.transform(wgs84, cgcs2000, lons, lats, [0]*len(lons))
# 显示转换结果
print("CGCS2000坐标:")
for i in range(len(x)):
print("{:.6f}, {:.6f}".format(x[i], y[i]))
```
在代码中,首先定义了WGS84和CGCS2000的投影坐标系。然后,定义经纬度列表,这里使用了三个示例经纬度。接着,使用`pyproj.transform`函数将经纬度转换为CGCS2000坐标。最后,将转换结果打印输出。
相关问题
cgcs2000 批量转换中央子午线 代码
以下是批量将经纬度转换为CGCS2000,并指定中央子午线的Python代码示例,同样使用到了pyproj库:
```python
import pyproj
# 定义转换器
wgs84 = pyproj.Proj('EPSG:4326')
cgcs2000 = pyproj.Proj(proj='utm', zone=49, ellps='GRS80', units='m', datum='CGCS2000')
# 定义经纬度列表
lons = [116.397458, 120.153576, 113.264434]
lats = [39.909729, 30.287459, 23.129163]
# 转换经纬度
x, y, z = pyproj.transform(wgs84, cgcs2000, lons, lats, [0]*len(lons))
# 显示转换结果
print("CGCS2000坐标:")
for i in range(len(x)):
print("{:.6f}, {:.6f}".format(x[i], y[i]))
```
在代码中,定义了WGS84和CGCS2000的投影坐标系,并将CGCS2000设置为UTM投影坐标系,并指定中央子午线为49度,单位为米,椭球体为GRS80,数据为CGCS2000。然后,定义经纬度列表,这里使用了三个示例经纬度。接着,使用`pyproj.transform`函数将经纬度转换为CGCS2000坐标。最后,将转换结果打印输出。
cgcs2000 批量转换中央子午线 java代码
以下是Java代码示例,使用了GeoTools库:
```java
import org.geotools.referencing.CRS;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import org.opengis.referencing.operation.MathTransform;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class CoordinateTransform {
public static void main(String[] args) throws IOException {
// 定义WGS84和CGCS2000坐标系
CoordinateReferenceSystem wgs84 = CRS.decode("EPSG:4326");
CoordinateReferenceSystem cgcs2000 = CRS.decode("EPSG:4490");
// 定义转换器
MathTransform transform = CRS.findMathTransform(wgs84, cgcs2000);
// 定义经纬度列表
List<Double> lons = new ArrayList<>();
lons.add(116.397458);
lons.add(120.153576);
lons.add(113.264434);
List<Double> lats = new ArrayList<>();
lats.add(39.909729);
lats.add(30.287459);
lats.add(23.129163);
// 转换经纬度
List<Double> x = new ArrayList<>();
List<Double> y = new ArrayList<>();
List<Double> z = new ArrayList<>();
for (int i = 0; i < lons.size(); i++) {
double[] result = new double[3];
try {
transform.transform(new double[]{lons.get(i), lats.get(i), 0.0}, 0, result, 0, 1);
} catch (Exception ex) {
ex.printStackTrace();
}
x.add(result[0]);
y.add(result[1]);
z.add(result[2]);
}
// 显示转换结果
System.out.println("CGCS2000坐标:");
for (int i = 0; i < x.size(); i++) {
System.out.printf("%.6f, %.6f%n", x.get(i), y.get(i));
}
}
}
```
在代码中,首先定义WGS84和CGCS2000的投影坐标系。然后,使用`CRS.findMathTransform`方法获取WGS84和CGCS2000之间的转换器。接着,定义经纬度列表,这里使用了三个示例经纬度。然后,使用转换器将经纬度转换为CGCS2000坐标。最后,将转换结果打印输出。
阅读全文