AW: [OpenLayers-Users] featureadded
Arnd Wippermann
arnd.wippermann at web.de
Sat Oct 8 06:59:07 EDT 2011
Hi,
If you change the order of your code, then you get what you want.
Create the layer
Register the event for the layer
Add the feature
If you add your feature before you register the event, then the feature is
added before the listener could listen.
Arnd
-----Ursprüngliche Nachricht-----
Von: openlayers-users-bounces at lists.osgeo.org
[mailto:openlayers-users-bounces at lists.osgeo.org] Im Auftrag von Puneet
Kishor
Gesendet: Freitag, 7. Oktober 2011 01:48
An: openlayers-users at lists.osgeo.org
Betreff: [OpenLayers-Users] featureadded
The following code is supposed to create a Google Maps base layer, and a
point using an external graphic that is rotated (az) and has height (rate)
described by the attributes passed when creating the point. A "featureadded"
event is supposed to create a popup anchored at the point showing "az" and
"rate". The code doesn't work. The base layer is created but neither the
point nor the popup are created. Suggestions?
var proj = {
"google": new OpenLayers.Projection("EPSG:900913"),
"latlng": new OpenLayers.Projection("EPSG:4326")
};
map = new OpenLayers.Map('map', {
"maxExtent": new OpenLayers.Bounds(-20037508, -20037508, 20037508,
20037508),
"maxResolution": 156543.0339,
"proj": proj,
"units": "meters"
});
map.addLayer(new OpenLayers.Layer.Google("Google Physical", {type:
google.maps.MapTypeId.TERRAIN}));
map.setCenter(new OpenLayers.LonLat(-89, 43).transform(proj.latlng,
proj.google), 2);
var styleMap = new OpenLayers.StyleMap({
"default": {
externalGraphic: "arrow.png",
rotation: "${az}",
graphicWidth:6,
graphicHeight: "${rate}"
}
});
var vectorLayer = new OpenLayers.Layer.Vector("Simple Geometry",
{styleMap: styleMap});
// create a point feature
var points = [];
var p = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point(-72, 42).transform(proj.latlng,
proj.google),
{attributes: {az: 76, rate: 33}},
{styleMap: styleMap}
);
points.push(p);
vectorLayer.addFeatures(points);
vectorLayer.events.on({
"featureadded": function(evt) {
feature = evt.feature;
var str = "";
for (var i in feature.attributes) {
str += "<b>" + i + ":</b> " + feature.attributes[i] + "<br
/>";
}
map.addPopup(new OpenLayers.Popup.FramedCloud(
"featurePopup",
feature.geometry.getBounds().getCenterLonLat(),
new OpenLayers.Size(50, 30),
str,
null,
true,
null
));
}
});
map.addLayer(vectorLayer);
_______________________________________________
Users mailing list
Users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users
More information about the Users
mailing list