Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a point object WKT. Like this: POINT (25.04568 48.221548). Also I have an icon in my project folder.

My goal is to show on a map an icon that represents a feature. Can it be just a normal OpenLayers feature (if yes, then how can I define that it should represent and icon) or do I need to create an OpenLayers marker (somehow create LonLat from WKT)?

share|improve this question
    
I have tried to fix typos and grammar to make sense of the title and the question but I just could not understand your first parenthetical remark "if yes,...." Could you please edit it to make it meaningful? –  whuber Jul 3 '13 at 19:47
    
edited, it is better? –  Bob Jul 3 '13 at 19:50

1 Answer 1

If you want to change icons for all objects on map, you can change the style. For example:

testLayer = new OpenLayers.Layer.Vector("testLayer", {
      rendererOptions: { zIndexing: true },
      styleMap: new OpenLayers.StyleMap({
          "default": new OpenLayers.Style({
              externalGraphic: "../../pics/icon1.png",
              graphicWidth:32,
              graphicHeight:34,
              graphicXOffset:-10,
              graphicYOffset:-34  ,
              graphicZIndex: 1
          }, 
          OpenLayers.Feature.Vector.style["default"]),
          "select": new OpenLayers.Style({
              externalGraphic: "../../pics/icon2.png",
              graphicWidth:36,
              graphicHeight:38,
              graphicXOffset:-12,
              graphicYOffset:-38,
              graphicZIndex: 1000
          })
      })

If you want to set icon for one object, you can use OpenLayers.Marker. But it is not recommended. For example:

        function addNewMarkers() {
            ...
        var position = map.getLonLatFromPixel(e.xy);
        var size = new OpenLayers.Size(21,25);

    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('OpenLayers-2.12/img/marker-gold.png', size, offset);

    var markersLayer = map.getLayer('Markers');
        var myTestMarker = new OpenLayers.Marker(position,icon);
            ...
            markersLayer.addMarker(myTestMarker);
       }
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.