简体   繁体   English

无法更改OpenLayers标记图标

[英]Can't change OpenLayers marker icon

I'm tryin to set two different kinds of images , but I always get the default one. 我正在尝试设置两种不同的图像,但是我总是得到默认的图像。 I would like to work without a extra txt file. 我想在没有额外的txt文件的情况下工作。

var iconOh and var iconParking are the images i'm trying to set. var iconOhvar iconParking是我要设置的图像。

The answers on the site did not helped me for now. 该网站上的答案目前对我没有帮助。

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

 // create layer switcher widget in top right corner of map.
    var layer_switcher= new OpenLayers.Control.LayerSwitcher({});
    map.addControl(layer_switcher);

    //Set markers on page  
    var lonLatOh = new OpenLayers.LonLat( 4.479121, 51.031809 )
          .transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            map.getProjectionObject() // to Spherical Mercator Projection
          );
    var lonLatParking1 = new OpenLayers.LonLat( 4.476497, 51.031157 )
          .transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            map.getProjectionObject() // to Spherical Mercator Projection
          );      
    var lonLatParking2 = new OpenLayers.LonLat( 4.477716, 51.029520 )
          .transform(
            new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
            map.getProjectionObject() // to Spherical Mercator Projection
          );    

    // zoom level     
    var zoom=17;

    // Marker images
    var iconOh = new OpenLayers.Icon('oh.png');
    var iconParking = new OpenLayers.Icon('parking.png');

    // Make layer with markers
    var markers = new OpenLayers.Layer.Markers( "Oh!" );
    map.addLayer(markers);

    // Show markers
    markers.addMarker(new OpenLayers.Marker(lonLatOh),iconOh);
    markers.addMarker(new OpenLayers.Marker(lonLatParking1),iconParking);
    markers.addMarker(new OpenLayers.Marker(lonLatParking2),iconParking);

    // Center according to specific marker
    map.setCenter (lonLatOh, zoom);  

You are passing the icon parameter at the wrong position. 您在错误的位置传递了icon参数。 Instead of 代替

markers.addMarker(new OpenLayers.Marker(lonLatOh),iconOh);

try 尝试

markers.addMarker(new OpenLayers.Marker(lonLatOh, iconOh));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM