x

mehrere standartmarker


  1. mehrere standartmarker · redpadz (Gast) · 08.01.2013 15:30 · [flux]

    Hallo.

    Hab folgendes Problem. Ich baue grade eine Karte zusammen. Es gelint mir viele Marker zu setzen. Dies sind aber alles die roten Standard-Marker.
    Kann ich ohne eigene Dateien zu benutzen die Standartmarker auch grün machen.

    Folgende Sources:

    var␣map;
    var␣layer_mapnik;
    var␣layer_tah;
    var␣layer_markers;
    
    function␣drawmap()␣{
    //␣Popup␣und␣Popuptext␣mit␣evtl.␣Grafik
    
    OpenLayers.Lang.setCode('de');
    
    //␣Position␣und␣Zoomstufe␣der␣Karte
    var␣lon␣=␣13.415153;
    var␣lat␣=␣52.517047;
    var␣zoom␣=␣12;
    
    map␣=␣new␣OpenLayers.Map('map',␣{
    projection:␣new␣OpenLayers.Projection("EPSG:900913"),
    displayProjection:␣new␣OpenLayers.Projection("EPSG:4326"),
    controls:␣[
    new␣OpenLayers.Control.Navigation(),
    new␣OpenLayers.Control.LayerSwitcher(),
    new␣OpenLayers.Control.PanZoomBar()],
    maxExtent:
    new␣OpenLayers.Bounds(-20037508.34,-20037508.34,
    20037508.34,␣20037508.34),
    numZoomLevels:␣20,
    maxResolution:␣156543,
    units:␣'meters'
    });
    
    layer_mapnik␣=␣new␣OpenLayers.Layer.OSM.Mapnik("Mapnik");
    layer_markers␣=␣new␣OpenLayers.Layer.Markers("Address",␣{␣projection:␣new␣OpenLayers.Projection("EPSG:4326"),
    visibility:␣true,␣displayInLayerSwitcher:␣false␣});
    
    map.addLayers([layer_mapnik,␣layer_markers]);
    jumpTo(lon,␣lat,␣zoom);
    
    var␣pois␣=␣new␣OpenLayers.Layer.Text(␣"My␣Points",␣{␣location:"pois1.txt",␣projection:␣new␣OpenLayers.Projection("EPSG:4326")}␣);
    map.addLayer(pois);
    
    }
    

    die Markers kommen von dann aus der .txt wie folgt:

    lat	lon	title	description	icon	iconSize	iconOffset
    52.517047	13.415153	␣␣	1.␣Adresse
    52.511743	13.44421	␣␣	2.␣Adresse
    52.539927	13.406482	␣␣	3.␣Adresse
    

    Die kommen auch alle, aber eben nur mit roten markern. Ich würde aber gern eien andersfarbig machen, jedoch ohne eigene Grafiken machen zu müssen.

    Geht das irgendwie?

    Gruß


    • Re: mehrere standartmarker · Netzwolf (Gast) · 08.01.2013 17:49 · [flux]

      Nahmd,

      redpadz wrote:

      Kann ich ohne eigene Dateien zu benutzen die Standartmarker auch grün machen.

      Die Marker sind kleine Graphiken, die der Webbrowser aus dem Netz lädt.
      Der Browser kann die Graphiken vergrößern und verkleinern, aber nicht umfärben.

      Die kommen auch alle, aber eben nur mit roten markern. Ich würde aber gern eien andersfarbig machen, jedoch ohne eigene Grafiken machen zu müssen.

      Die Marker, die Du verwenden willst, müssen irgendwo im Netz verfügbar sein.
      Am besten auf Deinem Server, weil Bandbreitenklau nicht gerne gesehen wird.

      Geht das irgendwie?

      Du kannst zum Beispiel einen dieser Marker herunterladen und auf Deinen Server packen:


      Als nächstes registrierst Du Deinen Marker als neuen Defaultmarker, und zwar mit folgendem JS-Code:

      OpenLayers.Marker.defaultIcon=function(){
      return␣new␣OpenLayers.Icon(
      'marker_yellow.png',␣␣␣//**************␣URL␣des␣eigenen␣Markers␣hier␣hinterlegen!!!␣*********
      OpenLayers.Size(21,25),
      OpenLayers.Pixel(-10,-25));
      };
      

      Achtung! Bitte die Adresse des eigenen Markers eintragen, genau so, wie wenn Du ihn in einem <img src="…"/> angeben würdest!

      Viel Spaß mit dem eigenen Marker!

      Gruß Wolf


    • Re: mehrere standartmarker · maxbe (Gast) · 08.01.2013 17:56 · [flux]

      Falls Du mehrere Marker in verschiedenen Farben haben willst, musst Du in deiner .txt-Datei auch die restlichen Felder ausfüllen, die Du in der ersten Zeile versprichst.

      Bei "icon" kannst Du die URL deines Bildes eintragen, zb die von OpenLayers "http://www.openlayers.org/dev/img/marker-blue.png" oder "http://www.openlayers.org/dev/img/marker.png" oder von irgendwo sonst.

      Bei iconSize kommt die Grösse des Markers rein im Format breite,höhe

      Bei iconOffset kommt rein, um wie viele Pixel der Marker verschoben ist, z.B. weil Dein Bild eine schrägstehende Nadel ist. Auch im Format links,oben ich weiss aber nicht mehr, von welcher Ecke aus gerechnet wird... 😉

      Grüße, Max


    • Re: mehrere standartmarker · Netzwolf (Gast) · 08.01.2013 18:10 · [flux]

      Nahmd,

      maxbe wrote:

      Bei iconOffset kommt rein, um wie viele Pixel der Marker verschoben ist, z.B. weil Dein Bild eine schrägstehende Nadel ist. Auch im Format links,oben ich weiss aber nicht mehr, von welcher Ecke aus gerechnet wird... 😉

      Bei (0,0) liegt der “Hotspot” in der linken oberen Ecke.

      Die erste Zahl gibt die horizontale Verschiebung des Markers an (üblicherweise nach links: negativ), die zweite die vertikale (üblicherweise nach oben: negativ).

      Der Defaultmarker ist eine zentrierte Nadel, da ist der erste Wert die negative halbe Breite zur Zentrierung, und der zweite die negative Höhe. Dann ist der Hotspot unten in der Mitte.

      Ganz einfach sind zentrierte Marker: da lässt man den Parameter einfach weg. 🙂

      Gruß Wolf