javascript - 我的 OpenLayers 矢量图层出了什么问题?

标签 javascript openlayers

我想创建一个包含 2 层的 OpenLayers map :

  1. 实际 map 。
  2. 一个红点,标志着城市的中心。

我写了以下代码:

function createView() {
    return new ol.View({
        center: ol.proj.transform([132.183333, 43.35], 'EPSG:4326', 'EPSG:3857'),
        zoom: 13
    });
}
function createMapLayer() {
    return new ol.layer.Tile({
        source: new ol.source.MapQuest({layer: 'osm'}),
        visibility: true
    });
}

function createCenterOfCityLayer() {
    var coordinates = [132.183333, 43.35];
    var features = new Array(1);

    features[0] = new ol.Feature(new ol.geom.Point(coordinates));

    var source = new ol.source.Vector({
        features: features
    });

    var style = [new ol.style.Circle({
        radius: 100,
        stroke: new ol.style.Stroke({
            color: 'red'
        }),
        fill: new ol.style.Fill({
            color: 'red'
        })
    })];

    var layer = new ol.layer.Vector({
        source: source,
        style: style
    });

    return layer;
}

function createMap() {
    return new ol.Map({
        target: 'map',
        layers: [
            createMapLayer(),
            createCenterOfCityLayer()
        ],
        view: createView()
    });
}
(function(){
    var app = angular.module('city-editor', [  ]);

    app.controller('CityEditorController', function(){
        this.map = createMap();
    });
})();

第一层(实际 map )是在 createMapLayer 函数内创建的,即红点图层 - 在 createCenterOfCityLayer 中。但是当我打开网页时, View 中心没有显示红点。

您可以找到完整的源代码here .

我的代码有什么问题(如何更改它以便红点显示在点 [132.183333, 43.35])?

最佳答案

矢量数据必须位于 View 的同一投影中,因此您也必须将矢量坐标从 EPSG:4326 转换为 EPSG:3857。

另一种选择,而不是手动进行变换,是使用矢量源中的projection属性。

干杯。

关于javascript - 我的 OpenLayers 矢量图层出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505099/

相关文章:

javascript - 在 OpenLayers 中拥有多边形的 removeLastPoint() 函数

javascript - 从 WFS 加载时,不会维护 OpenLayers 几何名称

javascript - 如何比较地理围栏中的纬度和经度值?

javascript - 将 Panoramio 照片添加到 OpenLayers map

javascript - 如何将 map 导出为全屏方式(使用 OpenLayer)?

javascript - 如何将类语法内部的 JSON 发送到 API?

javascript - 使用 jquery 时下拉 selectedindex 不触发

javascript - Webpack - 语法错误 : Unexpected token {

javascript - 尝试更改在 php 上重复的特定 div 宽度失败

javascript - javascript 的任何美化器都可以对齐 = 和 :