x

Marker... Marker.Move?


  1. Marker... Marker.Move? · Ghostrider82 (Gast) · 02.05.2011 21:33 · [flux]

    tagchen,

    das mit dem Verschieben eines Marker macht mich wahnsinnig.

    Folgender Code:

    function␣init()␣{
    var␣proj4326␣=␣new␣OpenLayers.Projection('EPSG:4326');
    var␣projmerc␣=␣new␣OpenLayers.Projection('EPSG:900913');
    var␣lonlat␣␣␣=␣new␣OpenLayers.LonLat($e,␣$n);
    var␣zoom␣␣␣␣␣=␣14;
    
    var␣map␣=␣new␣OpenLayers.Map('basicMap',␣{
    controls:␣[
    new␣OpenLayers.Control.KeyboardDefaults(),
    new␣OpenLayers.Control.MouseDefaults(),
    new␣OpenLayers.Control.LayerSwitcher(),
    new␣OpenLayers.Control.PanZoomBar(),
    new␣OpenLayers.Control.MousePosition(),
    new␣OpenLayers.Control.Attribution()],
    maxExtent:
    new␣OpenLayers.Bounds(-20037508.34,␣-20037508.34,␣20037508.34,␣20037508.34),
    numZoomLevels:␣18,
    maxResolution:␣156543,
    units:␣'m',
    projection:␣projmerc,
    displayProjection:␣proj4326
    
    });
    var␣mapnik_layer␣=␣new␣OpenLayers.Layer.OSM.Mapnik('Mapnik');
    var␣tah_layer␣␣␣␣=␣new␣OpenLayers.Layer.OSM.Osmarender('Tiles@Home');
    var␣cycle_layer␣␣=␣new␣OpenLayers.Layer.OSM.CycleMap('Fahrradkarte');
    var␣layer_marker␣=␣new␣OpenLayers.Layer.Markers('Marker');
    map.addLayers([mapnik_layer,␣tah_layer,␣cycle_layer,␣layer_marker]);
    lonlat.transform(proj4326,␣projmerc);
    map.setCenter(lonlat,␣zoom);
    
    var␣size␣␣␣␣␣=␣new␣OpenLayers.Size(40,40);
    var␣offset␣␣␣=␣new␣OpenLayers.Pixel(-(size.w/2),␣-size.h);
    var␣icon␣␣␣␣␣=␣new␣OpenLayers.Icon('arrow.png',␣size,␣offset);
    layer_marker.addMarker(new␣OpenLayers.Marker(lonlat,␣icon));
    layer_marker.move(new␣OpenLayers.LonLat(4,55));
    }
    

    Das setzen eines Marker klappt soweit. Rufe ich aber ganz unten den Move auf, moved sich da gar nichts.
    Hat jemand einen Vorschlag, was ich da (mal wieder) falsch gemacht habe?


    • Re: Marker... Marker.Move? · maxbe (Gast) · 02.05.2011 22:09 · [flux]

      hilft dieses Beispiel?

      Mir kommt dieses "layer_marker.move()" in deinem Programm komisch vor: layer_marker ist ein ganzer Layer und Du willst nur einen Marker verschieben, der halt auf diesem Layer sitzt...

      Grüße, Max


    • Re: Marker... Marker.Move? · Ghostrider82 (Gast) · 02.05.2011 22:46 · [flux]

      Okay, das mit dem Layer und der Verschiebung war Quatsch *schäm*

      Habe das soweit mal korrigiert, der Marker wird nach wie vor angezeigt, aber verschieben lässt sich dieser aber nicht.

      Nur zum Verständnis:

      Ich definiere den Marker, adde das Layer, verschiebe den Marker? Adde ich dann das Layer neu ?

      Danke schonmal für dein Feedback 🙂

      Viele Grüße
      Ghost


    • Re: Marker... Marker.Move? · maxbe (Gast) · 03.05.2011 08:45 · [flux]

      Was hüpfende Punkte angeht, hab ich nur Erfahrung mit Layern vom Typ "OpenLayers.Layer.Vector" und darauf gesetzten Markern "OpenLayers.Feature.Vector( OpenLayers.Geometry.Point() ... )". Mit OpenLayers.Layer.Markers weiss ichs nicht, da hab ich immer nur mit feststehende Markern rumgebastelt.

      Aber einen Layer neu hinzufügen muss man bei Openlayers eigentlich nie. Schlimmstenfalls muss man ein layer.redraw() aufrufen.


    • Re: Marker... Marker.Move? · Ghostrider82 (Gast) · 05.05.2011 13:25 · [flux]

      Vielen Dank für dein Feedback sowie dein Beispiel.
      Dank diesem habe ich es doch hinbekommen, das Ganze dann ein wenig mit Ajax kombiniert und der Marker wird live aktualisiert 🙂

      Vielen Dank ;-)