OSM(开放街道地图)帮助新手

时间:2013-05-23 19:58:00

标签: gis openlayers openstreetmap

我有几个问题:

我正在尝试将自己的标记添加到地图中,但它似乎不起作用。 此外,当我尝试在本地引用OpenLayer.js文件时,默认的红色标记会消失。

我在网上找到了一些例子,但恐怕不成功。所以我想在这里寻求一些帮助。

现在我的代码看起来像这样:

    <div id="Map" style="height: 250px; width: 400px" ></div>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<%--<script src="js/osm/api/OpenLayers.js"></script>--%>
<script>
    var lat = 55.676098;
    var lon = 12.568337;
    var zoom = 11;

    var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
    var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    var position = new OpenLayers.LonLat(lon, lat).transform(fromProjection, toProjection);

    map = new OpenLayers.Map("Map");
    var mapnik = new OpenLayers.Layer.OSM();
    map.addLayer(mapnik);

    var markers = new OpenLayers.Layer.Markers("Markers");//("Images/Icons/map-marker.png");
    map.addLayer(markers);
    markers.addMarker(new OpenLayers.Marker(position));

    map.setCenter(position, zoom);
</script>

正如你所看到的,我试图从'Images / Icons / map-marker.png'中引用我自己的标记而没有任何运气。

另外你可以看到我试图使用'OpenLayers.js'的本地副本,我不知道我是应该在本地使用它还是总是参考'www.openlayers.org',我相信是指当地足够好吗?

同样如前所述,如果我引用本地.js文件,红色标记,缩放按钮和OSM链接将消失。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

(您实际上是在询问有关 OpenLayers 的问题,而不是 OpenStreetMap

OpenLayers Marker文档提供了自定义标记图标的示例。您必须创建 OpenLayers.Icon 对象:

var size = new OpenLayers.Size(32,32);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon("Images/Icons/map-marker.png", size, offset);
markers.addMarker(new OpenLayers.Marker(position, icon));

您从哪里获得本地 OpenLayers.js 副本?如果它与一个版本相比不起作用,它可能会过时。这通常是您希望保留库的本地副本的原因,因为它们不会自动更改为更新的版本。

您还应该确保您从网络获得的示例是最新的。理想情况下,您使用official OpenLayers examples之一。

除了OpenLayers,您还可以尝试使用更现代,更易于使用的LeafLet library

答案 1 :(得分:0)

我在http://wiki.openstreetmap.org/wiki/Marker_API找到了这个:

marker = new khtml.maplib.overlay.Marker({
    position: new khtml.maplib.LatLng(0, 0),
    icon: {
            url: "http://maps.gstatic.com/intl/de_de/mapfiles/ms/micons/red-pushpin.png",
            size: {width: 26, height: 32},
            origin: {x: 0, y: 0},
            anchor: {
                    x: "-10px",
                    y: "-32px"
            }
    },
    shadow: {
            url: "http://maps.gstatic.com/intl/de_de/mapfiles/ms/micons/pushpin_shadow.png",
            size: {
                    width: "40px",
                    height: "32px"
            },
            origin: {x: 0, y: 0},
            anchor: {x: 0, y: -32 }
    },
    draggable: true,
    title: "moveable marker"

});