使用 OpenLayers 在 OpenStreetMap-tile 上放置一个简单的点

Put a simple point at OpenStreetMap-tile using OpenLayers

我读过很多线程试图在我的 OpenStreetMap 上放置一个简单的点(矢量层)。我猜这是不同投影的某种问题,但我自己无法弄清楚。

我在下面的代码中做错了什么?

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://openlayers.org/en/v3.13.1/build/ol.js" type="text/javascript"></script>
    <title>Openstret</title>
</head>
<body>
    <div id="map">
        <script type="text/javascript">

           var vectorSource = new ol.source.Vector();

            var iconFeature = new ol.Feature({
                geometry: new ol.geom.Point([0, 0])
            });

            vectorSource.addFeature(iconFeature);       

            var vectorLayer = new ol.layer.Vector({
                source: vectorSource
            });

            var olmap = new ol.Map({
                view: new ol.View({
                    center: [0, 0],
                    zoom: 2
                }),
                target: 'map'
            });

            var bakgrund = new ol.layer.Tile({source: new ol.source.OSM()});

            olmap.addLayer(bakgrund,vectorLayer);

        </script>

    </div>
</body>
</html>

ol.Map.addLayer只接受一个参数。您必须分别添加这两层。

改变

olmap.addLayer(bakgrund,vectorLayer);

olmap.addLayer(bakgrund);
olmap.addLayer(vectorLayer);

您也没有在任何地方包含 ol.css 文件。确保将其添加进去。这是一个有效的 JSFiddle.