> i want to open/show a label or popup by clicking on the icon in the map.
> this label should show the name which is written in the kml file, in this
> case the "Tractor1".
>
>
See the KML examples but basics are - use a SelectFeature control and
assign events to featurehighlighted and featureunhighlighted.
My onfeaturehighlighted (following the examples closely), looks like
below. Note the feature.attributes.name
which what you want.
function onKmlFeatureSelect(event) {
var feature = event.feature;
// Since KML is user-generated, do naive protection against
// Javascript.
var content
if (feature.style.balloonStyle) {
// Use Style.js to replace balloonstyle variables
with attribute values
content =
OpenLayers.Style.createLiteral(feature.style.balloonStyle, feature);
} else if (!feature.attributes.description &&
!feature.attributes.name) {
content = "<table border=\"1\">\n";
for (var i in feature.attributes){
content += "<tr><td>" + feature.attributes[i]
+ "</td></tr>\n";
}
content += "</table>\n";
} else {
content = '<table><tr bgcolor="#9CBCE2"><th>' +
feature.attributes.name + "</th></tr></table>" +
feature.attributes.description;
}
if (content.search("<script") != -1) {
content = "Content contained Javascript! Escaped
content below.<br />" + content.replace(/</g, "<");
}
popup = new OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds().getCenterLonLat(),
new OpenLayers.Size(100,100),
content,
null, true, onPopupClose);
feature.popup = popup;
map.addPopup(popup);
}
function onKmlFeatureUnselect(event) {
var feature = event.feature;
if(feature.popup) {
map.removePopup(feature.popup);
feature.popup.destroy();
delete feature.popup;
}
}
function onPopupClose(evt) {
if (kmlSelectControl != null)
kmlSelectControl.unselectAll();
}
--
Phil Scadden, Senior Scientist GNS Science Ltd 764 Cumberland St,
Private Bag 1930, Dunedin, New Zealand Ph +64 3 4799663, fax +64 3 477 5232
Notice: This email and any attachments are confidential. If received in error
please destroy and immediately notify us. Do not copy or disclose the contents.
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users