<div>I'm running the latest version of OpenLayers in conjunction with JQuery 1.7.2 and JQueryMobile 1.1.1, and my problem is this: I have a vector layer that will not show up except under extremely zoomed out conditions. I have another vector layer defined the same way that shows up fine. I can zoom out and all the features are exactly where they're supposed to be, but I get nothing from the Participants layer. Anyone got a clue?</div>
<div><br></div>So I have a vector layer, which I merely instantiated like this: <div><br></div><div><div><font face="courier new, monospace">var participantsLayer = new OpenLayers.Layer.Vector("Participants");</font></div>
</div><div><br></div><div>I then added some features to it: </div><div><br></div><div><div><font face="courier new, monospace" size="1"> iter(data, function(participant) {</font></div><div><font face="courier new, monospace" size="1"> participants[participant.user.resource_uri] = participant;</font></div>
<div><font face="courier new, monospace" size="1"> var f = participantsLayer.getFeatureBy('user', participant.user.resource_uri); // for each participant, update their position on the map</font></div>
<div><font face="courier new, monospace" size="1"> if(f) {</font></div><div><font face="courier new, monospace" size="1"> var pt = new OpenLayers.Geometry.Point(</font></div><div>
<font face="courier new, monospace" size="1"> participant.where.coordinates[0],</font></div><div><font face="courier new, monospace" size="1"> participant.where.coordinates[1]</font></div>
<div><font face="courier new, monospace" size="1"> ).transform(gm, sm);</font></div><div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1"> f.geometry.x = pt.x;</font></div>
<div><font face="courier new, monospace" size="1"> f.geometry.y = pt.y;</font></div><div><font face="courier new, monospace" size="1"> }</font></div><div><font face="courier new, monospace" size="1"> else {</font></div>
<div><font face="courier new, monospace" size="1"> f = new OpenLayers.Feature.Vector(</font></div><div><font face="courier new, monospace" size="1"> new OpenLayers.Geometry.Point(</font></div>
<div><font face="courier new, monospace" size="1"> participant.where.coordinates[0],</font></div><div><font face="courier new, monospace" size="1"> participant.where.coordinates[1]</font></div>
<div><font face="courier new, monospace" size="1"> ).transform(gm, sm), participant);</font></div><div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1"> f.style = {</font></div>
<div><font face="courier new, monospace" size="1"> fill : true,</font></div><div><font face="courier new, monospace" size="1"> fillColor : '#ff6666',</font></div>
<div><font face="courier new, monospace" size="1"> strokeColor : '#ff6666',</font></div><div><font face="courier new, monospace" size="1"> strokeWidth : 1,</font></div>
<div><font face="courier new, monospace" size="1"> fillOpacity : 0.6,</font></div><div><font face="courier new, monospace" size="1"> graphic : true,</font></div><div>
<font face="courier new, monospace" size="1"> graphicName : 'cross',</font></div>
<div><font face="courier new, monospace" size="1"> fontColor : '#000000',</font></div><div><font face="courier new, monospace" size="1"> fontWeight : 'bold',</font></div>
<div><font face="courier new, monospace" size="1"> fontFamily : 'Helvetica, Arial, sans-serif',</font></div><div><font face="courier new, monospace" size="1"> fontSize : '9pt',</font></div>
<div><font face="courier new, monospace" size="1"> pointRadius : 5,</font></div><div><font face="courier new, monospace" size="1"> label : participant.user.username,</font></div>
<div><font face="courier new, monospace" size="1"> labelAlign : 'l',</font></div><div><font face="courier new, monospace" size="1"> labelXOffset : 7</font></div>
<div><font face="courier new, monospace" size="1"> };</font></div><div><font face="courier new, monospace" size="1"> f.attributes = participant;</font></div><div><font face="courier new, monospace" size="1"> f.user = participant.user.resource_uri;</font></div>
<div><font face="courier new, monospace" size="1"> participantsLayer.addFeatures([f]);</font></div><div><font face="courier new, monospace" size="1"> }</font></div><div><font face="courier new, monospace" size="1"><br>
</font></div><div><font face="courier new, monospace" size="1"> var display_name = participant.user.first_name ? (participant.user.first_name + ' ' + participant.user.last_name) : participant.user.username;</font></div>
<div><font face="courier new, monospace" size="1"> var heartbeat_time = new Date(participant.last_heartbeat);</font></div><div><font face="courier new, monospace" size="1"> var email_link = $("<a class='user_email' data-role='button' data-mini='true' href='mailto:" + participant.user.email + "'>email</a>");</font></div>
<div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1"> var participant_name = $("<li></li>")</font></div><div><font face="courier new, monospace" size="1"> .append($("<a class='username' href='#'>" + display_name + "</span>").data('user', participant.user.resource_uri))</font></div>
<div><font face="courier new, monospace" size="1"> .append($("<span class='user_heartbeat'>" + heartbeat_time.toTimeString().substring(0,5) + "</span>"))</font></div>
<div><font face="courier new, monospace" size="1"> .append(email_link);</font></div><div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1"> $("#participant_list").append(participant_name);</font></div>
<div><font face="courier new, monospace" size="1"> });</font></div></div><div><font face="courier new, monospace" size="1"><br></font></div><div><font face="courier new, monospace" size="1"> participantsLayer.redraw();</font></div>
<div><font face="courier new, monospace" size="1"><br></font></div><div><font face="arial, helvetica, sans-serif">And then added it to this map:</font></div><div><span style="font-family:arial,helvetica,sans-serif"> </span></div>
<div><font size="1" face="courier new, monospace"><div> var baseLayer = new OpenLayers.Layer.Google("Google Terrain", {type: google.maps.MapTypeId.TERRAIN, numZoomLevels: 20});</div><div> map = new OpenLayers.Map({</div>
<div> div: "map",</div><div> theme : null,</div><div> projection: sm,</div><div> numZoomLevels: 18,</div><div> controls: values(controls),</div>
<div> layers: [baseLayer, annotationLayer, participantsLayer]</div><div> });</div><div> newCenter = new OpenLayers.LonLat(data.center.coordinates[0], data.center.coordinates[1]);</div>
<div> lastCenter = newCenter.clone();</div><div><br></div><div> map.maxExtent = baseLayer.maxExtent;</div><div> map.setCenter(newCenter, data.zoom_level);</div><div>
annotationLayer.projection = sm;</div><div> annotationLayer.maxExtent = map.maxExtent;</div><div> participantsLayer.maxExtent = map.maxExtent;</div><div><br></div>
<div><br></div></font></div>