You are not logged in.
- Topics: Active | Unanswered
Announcement
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***
Pages: 1
#1 2013-06-11 12:22:37
- c4yolli
- Member
- Registered: 2013-06-11
- Posts: 3
OpenLayers: PNG on Vector Layer
Hallo,
ich würde gerne dieses Beispiel (http://openlayers.org/dev/examples/drag-feature.html) so ändern, dass statt dem Punkt ein PNG-Bild plaziert werden kann.
Ich habe es schon mit StyleMap versucht, aber das scheint nicht der richtige Weg zu sein. Bei einem Punkt werden mir dann zwar die Marker angezeigt, aber die anderen Elemente gehen dann nicht mehr.
Ziel ist es, verschiedene Bilder UND Linien, Punkte, Polygone auf der Karte einzuzeichnen UND sie verschieben zu können. Wenn ich die Bilder im Marker Layer plaziere, habe ich ja nicht die "Drag"-Funktionalität, oder?
Bin um jeden Tipp verlegen.
Danke.
var sMap = new OpenLayers.StyleMap({
"default": {
externalGraphic: 'http://www.openlayers.org/dev/img/marker.png',
graphicWidth: 30,
graphicHeight: 30
}
});
vectors = new OpenLayers.Layer.Vector("Vector Layer", {styleMap: sMap});
map.addLayer(vectors);
Offline
#2 2013-06-11 14:47:05
- c4yolli
- Member
- Registered: 2013-06-11
- Posts: 3
Re: OpenLayers: PNG on Vector Layer
Ich habe es jetzt versucht, indem ich per handlerOptions einen eigenen Style übergebe. Nur greift das irgendwie nicht.
var myStyle = new OpenLayers.StyleMap({
strokeColor: "blue",
strokeOpacity: "0.7",
strokeWidth: 2,
fillColor: "blue",
pointRadius: 3,
cursor: "pointer"
});
controls = {
point: new OpenLayers.Control.DrawFeature(vectors, OpenLayers.Handler.Point, {handlerOptions: {style: myStyle}}),
line: new OpenLayers.Control.DrawFeature(vectors,
OpenLayers.Handler.Path),
polygon: new OpenLayers.Control.DrawFeature(vectors,
OpenLayers.Handler.Polygon),
drag: new OpenLayers.Control.DragFeature(vectors)
};
Offline
#3 2013-06-11 15:08:06
- wambacher
- Member

- From: Schlangenbad/Wambach, Germany
- Registered: 2009-12-16
- Posts: 16,769
- Website
Re: OpenLayers: PNG on Vector Layer
erstmal herzlich willkommen im Forum!
Du hast hier ein OL-Problem, das wohl die wenigsten von uns hier klären können. Dazu ist es ein wenig zu speziell.
Ich würde es mal direkt bei OL versuchen:
http://trac.osgeo.org/openlayers/wiki/MailingLists
wenn es dann zu Openstreetmap-Problemen kommen sollte, können wir sicher weiterhelfen.
Gruss
walter
p.s. soll kein "Rausschmiss" sein, aber ich bin wirklich skeptisch ob dir hier jemand schnell weiterhelfen kann. geht schon verdammt tief an die OL-Substanz ran. 1-2 Super-OL-User haben wir schon, aber das kann dauern.
Offline
#4 2013-06-11 15:55:21
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: OpenLayers: PNG on Vector Layer
Hallo,
nimm mal das hier als Beispiel: http://openlayers.org/dev/examples/sele … layer.html
und füge am Ende von function init(), also kurz vor dem createFeature folgendes ein:
var d1 = new OpenLayers.Control.DragFeature(vectors1);
var d2 = new OpenLayers.Control.DragFeature(vectors2);
map.addControl(d1);
map.addControl(d2);
d1.activate();
d2.activate();Dann kannst Du das sowohl png Image als auch die Vector features in der Gegend hin und her schieben.
hth
Last edited by mmd (2013-06-11 15:59:07)
Offline
#5 2013-06-11 19:09:20
- Oranger Assistent
- Member
- Registered: 2013-04-07
- Posts: 92
Re: OpenLayers: PNG on Vector Layer
Tach.
ich würde gerne dieses Beispiel (http://openlayers.org/dev/examples/drag-feature.html) so ändern, dass statt dem Punkt ein PNG-Bild plaziert werden kann.
Die DrawFeature des Original-OpenLayers benutzen das Styling des (gemeinsamen) LayerVector.
Nach einem kleinen Patch kann man jedem DrawFeature einen eigenen Style vergeben.
Orange Grüße
Der Assistent
Last edited by Oranger Assistent (2013-06-11 22:11:30)
Offline
#6 2013-06-11 19:31:55
- mmd
- Member
- Registered: 2010-11-06
- Posts: 2,150
Re: OpenLayers: PNG on Vector Layer
Hallo,
ich habe mein Beispiel mal online gestellt: http://maxheight.bplaced.net/demo.html
Wahrscheinlich muss der OP die Lösungen von Wolf's Assistent und meinem Ansatz (mit 2 Layern) kombinieren, wenn
Bilder UND Linien, Punkte, Polygone
gezeichnet werden / verschiebbar sein sollen. YMMV.
Ah, ich sehe gerade, dass Wolf aus
drawFeature: function(geometry) {
var feature = new OpenLayers.Feature.Vector(geometry);
ein
drawFeature: function(geometry) {
var feature=new OpenLayers.Feature.Vector(geometry, null, this.style);
gemacht hat in OpenLayers.Control.DrawFeature) Damit spart man sich auch das Rumgehampele mit 2 layern und kann jedem Feature unterjubeln was man will ![]()
Ohne Patch müsste man wahrscheinlich dennoch zu 2 Layern + Templates greifen und die Features in Abhängigkeit von irgendwelchen Eigenschaften dynamisch stylen (Beispiel: http://openlayers.org/dev/examples/styles-context.html). Ich glaube, es gab da irgendein Problem mit den Kontexten, wenn man in einem Layer Bilder + Vektor-Features gemeinsam nutzen wollte, daher der 2. Layer. Kann sein, dass ich das aber falsch in Erinnerung habe, dunno.
Last edited by mmd (2013-06-11 23:08:18)
Offline
#7 2013-06-17 06:58:51
- c4yolli
- Member
- Registered: 2013-06-11
- Posts: 3
Re: OpenLayers: PNG on Vector Layer
Hallo,
ich möchte nicht vergessen, mich für die Hilfe zu bedanken. Der Patch von Oranger Assistent funktioniert super.
Gruß
c4yolli
Offline
Pages: 1