jquery - Javascript doesn't work the first click - Openlayers -
i have javascript displays map via openlayers , plots points text on map. reason, text layer doesn't work on first click. here link site. first project working javascript, , appreciate help.
thanks!
code:
//--------------------------------------------------------------------- // creates filtered point vector layer, base of text layer // , genetates table // function createvector( ajaxurl ) { console.log( ajaxurl ); //remove layers except base (google) layers while( map.layers.length > 4 ) map.removelayer(map.layers[map.layers.length - 1]); var date = $('#datepicker').val(); var filter = $('input:radio[name=filter]:checked').val(); //json, ajax, , kml urls var jsonurl = "/map/desc/"; var url = "/map/test-"; url += date; jsonurl += date; url += "/"+filter; jsonurl += "/"+filter; url += ".kml" //create new layer points points = new openlayers.layer.vector("albedo data points", { strategies: [new openlayers.strategy.fixed()], protocol: new openlayers.protocol.http({ url: url, format: new openlayers.format.kml({ extractstyles: true, extractattributes: true }) }), }); //create style map layer text. empty @ point text = new openlayers.layer.vector("text layer", { stylemap: new openlayers.stylemap({'default':{ pointerevents: "visiblepainted", label : "${val}", fontcolor: "${color}", fontsize: "12px", fontfamily: "courier new, monospace", fontweight: "bold", labelalign: "${align}", labelxoffset: "${xoffset}", labelyoffset: "${yoffset}", labeloutlinecolor: "white", labeloutlinewidth: 3 } }), }); //get json model $.getjson(jsonurl, function(json, textstatus, jqxhr) { data = json; }); //load function after map has been processed points.events.register( 'loadend', points, function (e) { addtextlayer( filter ); }); //add layers map map.addlayers( [points, text] ); //and control selectcontrol = new openlayers.control.selectfeature(points); map.addcontrol(selectcontrol); selectcontrol.activate(); points.events.on({ 'featureselected': onfeatureselect, 'featureunselected': onfeatureunselect }); //generate table ajaxurl += '?q='; $( '#results' ).html( ' ' ).load( ajaxurl + date ); } //--------------------------------------------------------------------- // loops through points layer grab coordiantes, , // adds features text layer // function addtextlayer( filter ) { for( var = 0; < points.features.length; i++ ) { var value; if( filter == "albedo" ) value = data[i].fields.albedo; else value = data[i].fields.snow_density; var temp = new openlayers.geometry.point( points.features[i].geometry.x, points.features[i].geometry.y ); var textfeature = new openlayers.feature.vector( temp ); textfeature.attributes = { val: value, color: 'blue', align: "cm", xoffset: 20, yoffset: 10, }; text.addfeatures( textfeature ); }; }
Comments
Post a Comment