1

I'm using Openlayers with Mapstraction v1 (mapstraction.js) but I'm unable to register the markers. Markers simply do not responds to the events. The function is here, any help will be much appreciated.

//Add marker manager for specified zoom level
function addmmangerforzoom(zoomlevel) {
try {

    nocache_urladdon = "&nocache=" + new Date().getTime();
    geturl = baseurl + "&t=markerdata&unit=" +  currtrackerunit + "&date=" + currdate + "&zoomlevel=" + zoomlevel + nocache_urladdon;
    var loader = new net.ContentLoader(geturl, function() {
        eval("var jsondata = " + this.req.responseText);

        //Go through lat/lon cords
        var gmarkers = [];
        var i = 0;
        var totalicon = jsondata["data"].length;
        for (var markerarr in jsondata["data"]) {

            //Choose icon
            var icon = chooseicon("archive", i, jsondata["data"][markerarr][3], totalicon);

            //Create point
            var point = new LatLonPoint(jsondata["data"][markerarr][1], jsondata["data"][markerarr][2]);

            //Create marker
            var marker = new Marker(point);

            //Set zoom level to show this marker
            marker.setAttribute("zoomlevel", zoomlevel);

            //Set marker icon
            if (mapstraction.api == "openlayers") {
                //Mapstraction seems to have a bug, openlayers required negative anchor position
                var iconanchor = [
                    -icon["iconanchor"][0],
                    -icon["iconanchor"][1]
                ];
                marker.setIcon(icon["image"], icon["iconsize"], iconanchor);
            } else {
                marker.setIcon(icon["image"], icon["iconsize"], icon["iconanchor"]);
            }

            marker.setShadowIcon(icon["image"], icon["iconsize"]);

            //Add marker to map
            mapstraction.addMarker(marker);

            if (mapstraction.api == "openlayers") {
                marker.proprietary_marker.mid = jsondata["data"][markerarr][0];
                marker.proprietary_marker.Lon = jsondata["data"][markerarr][2];
                marker.proprietary_marker.Lat = jsondata["data"][markerarr][1];
                marker.proprietary_marker.events.register("mousedown", marker.proprietary_marker, openlayersmarkerclicked);
            }

            i++;

        }

        //Add to list of marker managers allready created
        markermng_zoomlevel.push(zoomlevel);

        //Show markers only for specifed zoom level
        markerszoomlevel(zoomlevel);

    });

} 

}
bla
  • 25,846
  • 10
  • 70
  • 101
  • Does adding the marker work properly? The thinkg that strikes me is that you don't add the actual marker object to the event register. To me it looks like you want to bind the mousedown to the proprietary marker. Does marker.proprietary_marker.events.register("mousedown", marker, openlayersmarkerclicked); work? or marker.events.register("mousedown", marker, openlayersmarkerclicked); – Jeroen Dec 07 '12 at 12:29

0 Answers0