1、EPSG:4326 与 EPSG:3857的坐标转换
import {
transform} from 'ol/proj';//导入方法
//EPSG:3857 转 EPSG:4326
transform([12202419, 4469830],"EPSG:3857","EPSG:4326")
//EPSG:4326 转 EPSG:3857
transform([109.6162, 37.2201],"EPSG:4326","EPSG:3857")
2、Openlayers 自定义坐标系(EPSG:4490 和 EPSG:4525)
import proj4 from 'proj4'
transform([4107376, 37379693],"EPSG:4525","EPSG:4490")
3、 openlayers自定义投影坐标系(EPSG:4542),GeoJSON读取geometry和坐标转换
思路:
1、拿到所有的featurens,
2、申明一个临时变量来保存所有的features
3、然后循环调用convert2000CoorTo84转换
4、再把转换后的值push到临时变量中,
5、返回一个转换坐标后的geometry
定义转换函数:
1、引入proj4
import proj4Tool from 'proj4'
import {
register } from 'ol/proj/proj4';
import GeoJSON from 'ol/format/GeoJSON';
2、定义扩展的EPSG
defineExtarProject() {
proj4Tool.defs([
[
'EPSG:4543',
'+proj=tmerc +lat_0=0 +lon_0=102 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs'
],
[
'EPSG:4542',
'+proj=tmerc +lat_0=0 +lon_0=99 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs'
],
[
'EPSG:26713',
'+proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defs'
]
]);
register(proj4Tool);
}
4、读取数据并转换坐标系
_readGeometryFromGeojson(geoJson, orgEpsg="EPSG:4326") {
if (typeof (geoJson) === 'string') {
try {
geoJson = JSON.parse(geoJson)
} catch (error) {
console.log('convert data ...', error)
}
}
var geojsonFeature = new GeoJSON().readFeature(geoJson, {
dataProjection: orgEpsg, // 元数据的投影坐标
featureProjection: "EPSG:4326" //规定要素以哪种坐标显示
});
return geojsonFeature;
}
5、获取数据
// 调用后台接口获取到geojson
axios.get('/getGeojson').then(geojson=>{
this._readGeometryFromGeojson(geojson, 'EPSG:4542');
}).catch(err=>{
console.log(err)
})
``