I tried with this code:
var lgpx = new OpenLayers.Layer.Vector("Track", {
style: {strokeColor: 'red', strokeWidth: 10, strokeOpacity: 0.5},
                projection: map.displayProjection,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: 'gpx.php?imei='+imei+'&from='+from+'&to='+to,
                    format: new OpenLayers.Format.GPX({
                        extractAttributes: true,
                        extractStyles: false,
                        maxDepth: 4,
                        extractTracks: true,
                        extractRoutes: false,
                        extractWaypoints: false
                    })
                })
            });

            map.addLayer(lgpx);

            lgpx.events.register('loadend',lgpx,function() {
                var bounds = this.getDataExtent();
                map.zoomToExtent(bounds);
            });

            var hoverSelect = new OpenLayers.Control.SelectFeature(lgpx, {
                hover: true,
                multiple: true,
                geometryTypes: ["OpenLayers.Geometry.LineString"],
                renderIntent: "temporary",
                onSelect: function(f) {
                    var content = 'popup';
                    popup = new OpenLayers.Popup.FramedCloud("Info",
                        f.geometry.getBounds().getCenterLonLat(),
                        null,
                        content,
                        null, true, function() {
                            hoverSelect.unselectAll();
                        }
                    );
                    f.popup = popup;
                    map.addPopup(popup);
                },
                onUnselect: function(f) {
                        if (f.popup) {
                        map.removePopup(f.popup);
                        f.popup.destroy();
                        delete f.popup;
                    }
                }
            });
            map.addControl(hoverSelect);
            hoverSelect.activate();

and the GPX file is like this:
<gpx xmlns="http://www.topografix.com/GPX/1/1"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.1" creator="Waze Mobile Ltd (1.4.0.1) - http://roadmap.digitalomaha.net/editor.html"; xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd";>
<trk xmlns="">
<trkseg>
<trkpt lat="37.0617024" lon="14.9067984">
<time>2010-05-16T10:46:10Z</time>
<name>0</name>
</trkpt>
                .............

I would like to display inside the popup time and name attributes

Il 11/05/2010 19.11, emmexx ha scritto:
Il 11/05/2010 18:43, Francesco scrisse:
Hi,
      I'm trying to display a popup on mouse over GPX track. This is the
code used to load the track:
                  onSelect: function(feature) {

-------------->  Here I want to display a popup with info from the GPX file

                  },
                  onUnselect: function(feature) {
I use eventListeners instead of onSelect onUnselect.

bye
        maxx


Code for the popup:
        var highlightCtrl = new OpenLayers.Control.SelectFeature([vlayer,
clayer], {
                hover: true,
                highlightOnly: true,
                multiple: true,
                geometryTypes: ["OpenLayers.Geometry.LineString"],
                renderIntent: "temporary",
                eventListeners:
                {
                        featurehighlighted: function(f)
                        {
                                popup = new OpenLayers.Popup("mylayer",
f.feature.geometry.getBounds().getCenterLonLat(),
null,
'some html text',
null,
true);
                                popup.autoSize=true;
//                              popup.panMapIfOutOfView=true;
                                f.feature.popup = popup;
                                map.addPopup(popup);
                        },
                        featureunhighlighted: function(f)
                        {
                map.removePopup(f.feature.popup);
                f.feature.popup.destroy();
                f.feature.popup = null;

                        }
                }       
        });

        map.addControl(highlightCtrl);

        highlightCtrl.activate();

(popup is a global variable)

Code to open a gpx file:
                var tmplayerGps= new OpenLayers.Layer.GML('myfile', path,
                {
                                format:  OpenLayers.Format.GPX,
                                formatOptions: {
                                        extractAttributes: true,
                                        extractStyles: false,
                                        maxDepth: 2,
                                        extractTracks: true,
                                        extractRoutes: false,
                                        extractWaypoints: false
                                },
                                'styleMap': styleMap,
                                projection: map.displayProjection
                });


_______________________________________________
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users

Reply via email to