x

weiteren Marker einfügen


  1. weiteren Marker einfügen · joergi2012 (Gast) · 18.03.2012 14:06 · [flux]

    Hi,

    ich habe da ein kleines Problem. Mit viel Hilfe von Netzwolf, habe ich seiner Zeit den folgenden Script erstellt. Hierbei wird ein Marker dargestellt, der den neuen Standort zeigt. Dieser Marker ist auch frei positionierbar.

    Nun möchte ich jedoch noch einen weiteren Marker einbauen (Standort alt). Dieser Marker soll auch eine eigene Grafik besitzen(z.B. ziel.png). Die entsprechende Position soll auch wieder per PHP ($long2 bzw $lat2) übernommen werden. Die Daten sollen nicht aus einer CSV Datei kommen. Hier mein Script. Könnt Ihr mir helfen? Ich stehe einfach auf dem Schlauch:(

    var␣map;
    function␣showMap()
    {
    map␣=␣new␣OpenLayers.Map("map",
    {
    maxExtent:␣new␣OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
    maxResolution:␣156543.0399,
    units:␣"m",
    projection:␣new␣OpenLayers.Projection("EPSG:900913"),
    displayProjection:␣new␣OpenLayers.Projection("EPSG:4326"),
    controls:␣[],
    minZoom:12,
    maxZoom:18
    });
    map.addControl␣(new␣OpenLayers.Control.LayerSwitcher());
    map.addControl␣(new␣OpenLayers.Control.Navigation());
    map.addControl␣(new␣OpenLayers.Control.MousePosition());
    map.addControl␣(new␣OpenLayers.Control.PanZoomBar({minZoom:␣12}));
    OpenLayers.Marker.defaultIcon␣=␣function␣()␣{
    return␣new␣OpenLayers.Icon␣("../symbole/nadel.png",␣{w:35,␣h:41},␣{x:␣-10,␣y:-30});
    };
    var␣layerMapnik␣=␣new␣OpenLayers.Layer.OSM.Mapnik("Mapnik␣(updated␣weekly)");
    map.addLayers([layerMapnik]);
    map.setCenter(new␣OpenLayers.LonLat(<?php␣echo␣$lon;␣?>,<?php␣echo␣$lat;␣?>).transform(new␣OpenLayers.Projection("EPSG:4326"),
    new␣OpenLayers.Projection("EPSG:900913")),␣16);
    map.addLayer(new␣OpenLayers.Layer.Markers("Standort␣neu"));
    map.addControl␣(new␣OpenLayers.Control␣({
    
    draw:␣function␣(px)␣{
    this.handler␣=␣new␣OpenLayers.Handler.Click␣(this,␣{click:␣this.onclick},␣{});
    this.activate();
    },
    
    onclick:␣function␣(ev)␣{
    var␣lonLat=this.map.getLonLatFromViewPortPx(ev.xy);
    marker.moveTo␣(this.map.getLayerPxFromLonLat(lonLat));
    lonLat.transform(this.map.getProjectionObject(),this.map.displayProjection);
    document.getElementById('lat').value␣=␣lonLat.lat;
    document.getElementById('lon').value␣=␣lonLat.lon;
    }
    }));
    var␣marker␣=␣new␣OpenLayers.Marker(map.getCenter());
    marker.events.register("mousedown",␣marker,␣function(evt)
    {
    OpenLayers.Event.stop(evt);
    }
    );
    map.layers[map.layers.length-1].addMarker(marker);
    }
    showMap();