如何在OpenLayers的正确位置绘制特征

时间:2019-09-02 14:33:04

标签: javascript gis openlayers

该点未在正确的位置(OpenLayers)绘制

我有tilemap图像和一些坐标(EPSG:5179)。我正在尝试在OpenLayers中绘制功能。但是坐标未在正确的位置绘制。例如,如果我在韩国绘制点,则在日本绘制该点。而且,如果我在视图中设置了center [0,0]的选项,则地图将从日本开始。我认为[0,0]坐标在我的tilemap上是错误的。有什么方法可以更改中心坐标或正确绘制坐标(我已经使用过变换功能)?

1 个答案:

答案 0 :(得分:1)

EPSG:5179中的

[0,0]位于台湾东南部。要以韩国为中心,您需要在大田附近的[1000000,1800000]之类的东西。首先检查您的投影定义是否正确(请参见我的示例)。但是,如果使用自己的图块,则需要了解图块网格的范围或起源以及分辨率,以设置OpenLayers图块网格。

proj4.defs("EPSG:5179","+proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs");
ol.proj.proj4.register(proj4);

var map = new ol.Map({
    layers : [ 
        new ol.layer.Tile({source : new ol.source.OSM()}),
    ],
    target : 'map',
    view : new ol.View({
        center: [1000000, 1800000],
        zoom: 7,
        projection: 'EPSG:5179'
    })
});
html, body, .map {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}
<link href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css" rel="stylesheet" />
<script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.5.0/proj4.js"></script>
<div id="map" class="map"></div>

相关问题