Hi Arnd,<div><br></div><div>Thanks, that worked, but I&#39;ve hit another stumbling block. I&#39;m probably messing up here somehow, but I tried passing in tweet to the function like so</div><div><br></div><div><div>function onFeatureSelect(evt, tweet) </div>
<div>{selectedFeature = evt.feature;</div><div>popup = new OpenLayers.Popup.FramedCloud(</div><div>&quot;chicken&quot;,</div><div>evt.feature.geometry.getBounds().getCenterLonLat(),</div><div>null,</div><div>popupHTML(tweet),                  </div>
<div>null, true, onPopupClose);evt.feature.popup = popup; map.addPopup(popup);}</div><div><br></div><div>which now returns an error &#39;cannot read property of &#39;from_user_id&#39; of undefined, which means that the html is being fed into the popup, but that the info from the json object is being passed in. Full code is below, again, sorry for my novice questions...</div>
<div><br></div><div><br></div><div><br></div><div><div>var feat, OpenLayers, latlon;</div><div>var tweetz = new OpenLayers.Layer.Vector(&quot;Tweets&quot;, {styleMap: new OpenLayers.StyleMap({externalGraphic: &quot;OpenLayers-2.11-rc1/img/marker-green.png&quot;, pointRadius: 10})});</div>
<div>var marker = new OpenLayers.Layer.Vector(&quot;Marker&quot;, {styleMap: new OpenLayers.StyleMap({externalGraphic: &quot;OpenLayers-2.11-rc1/img/marker.png&quot;, pointRadius: 10})});</div><div>var map = new OpenLayers.Map(&#39;map&#39;);</div>
<div>var tweets = [];</div><div>var tweetsQ = [];</div><div>var refreshQuery = &#39;?=&#39;;</div><div>// Need something here for popups or marker lables</div><div><br></div><div><br></div><div>function onFeatureUnselect(evt) {map.removePopup(evt.feature.popup);evt.feature.popup.destroy();evt.feature.popup = null;}  </div>
<div><br></div><div>//Map features and so forth<span class="Apple-tab-span" style="white-space:pre">                        </span></div><div>function initGIS(){</div><div>map.addControl(new OpenLayers.Control.LayerSwitcher());</div><div>var mapnik = new OpenLayers.Layer.OSM();</div>
<div>map.addLayer(mapnik);</div><div>map.addLayer(tweetz);</div><div>map.addLayer(marker);</div><div>tweetz.events.on({</div><div>&#39;featureselected&#39;: onFeatureSelect,</div><div>&#39;featureunselected&#39;: onFeatureUnselect</div>
<div>});</div><div>selectControl = new OpenLayers.Control.SelectFeature(tweetz,</div><div>{clickout: true, toggle: false,hover: false}</div><div>);</div><div>map.addControl(selectControl);</div><div>selectControl.activate();</div>
<div>map.setCenter(new OpenLayers.LonLat(-90, 38).transform(new OpenLayers.Projection(&quot;EPSG:4326&quot;),map.getProjectionObject()),12);</div><div>$(document).everyTime(&#39;30s&#39;, acquireTweets);</div><div>$(document).everyTime(&#39;100ms&#39;, parseTweetsQ);</div>
<div>getLoc();</div><div>} </div><div><br></div><div>function getLoc(){</div><div>if (Modernizr.geolocation) {</div><div> navigator.geolocation.getCurrentPosition(plotLoc,handle_error);</div><div>} else {</div><div>yqlgeo.get(&#39;visitor&#39;,norm_yql_resp);</div>
<div>}</div><div>}</div><div><br></div><div>function createTWTsrcURL (){</div><div>var temp = map.getCenter().transform(new OpenLayers.Projection(&quot;EPSG:900913&quot;),new OpenLayers.Projection(&quot;EPSG:4326&quot;));</div>
<div>return &#39;<a href="http://search.twitter.com/search.json">http://search.twitter.com/search.json</a>&#39; + refreshQuery + &#39;&amp;geocode=&#39; + temp.lat +&#39;%2C&#39; + temp.lon + &#39;%2C50km&amp;rpp=100&amp;callback=?&#39;;</div>
<div>}</div><div><br></div><div><br></div><div>function plotLoc (position){</div><div>var feat = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(position.coords.longitude,position.coords.latitude).transform(new OpenLayers.Projection(&quot;EPSG:4326&quot;),map.getProjectionObject()),14);</div>
<div>marker.addFeatures([feat]);</div><div>var bounds = marker.getDataExtent();</div><div>map.setCenter(bounds.getCenterLonLat(),10);</div><div>acquireTweets();</div><div>}</div><div><br></div><div><br></div><div><br></div>
<div>function acquireTweets(){</div><div>$.getJSON(createTWTsrcURL(), function(data){</div><div>if(data.results)</div><div>$.each(data.results, function(i, tweet){</div><div>if (tweet.geo || tweet.location)</div><div>tweetsQ.push(tweet);</div>
<div>});refreshQuery = data.refresh_url;});}</div><div><br></div><div>function parseTweetsQ(){</div><div>if (tweetsQ.length &gt; 0) {</div><div>var tweet = tweetsQ.pop();</div><div>if (tweet.geo){</div><div>var lon = tweet.geo.coordinates[1];</div>
<div>var lat = tweet.geo.coordinates[0];</div><div>tweet.point = new OpenLayers.Geometry.Point(lon,lat).transform(new OpenLayers.Projection(&quot;EPSG:4326&quot;),map.getProjectionObject());</div><div>//tweet.attributes = {};</div>
<div>plotTwt(tweet);}}}</div><div><br></div><div><br></div><div>function popupHTML(tweet) {</div><div>var retval = &#39;&#39;;</div><div>retval += &#39;&lt;div class=&quot;tweet_info&quot;&gt;&#39;;</div><div>retval += &#39;&lt;img alt=&quot;&#39; + tweet.from_user_id + &#39;&quot; src=&quot;&#39; +</div>
<div>tweet.profile_image_url + &#39;&quot; class=&quot;tweet_profile&quot;/&gt;&#39;;</div><div>retval += &#39;&lt;h3&gt;&#39; + tweet.from_user + &#39;&lt;/h3&gt;&#39;;</div><div>retval += &#39;&lt;p&gt;&#39; + tweet.text + &#39;&lt;/p&gt;&#39;;</div>
<div>retval += &#39;&lt;p&gt;Source: &lt;a href=&quot;&#39; + tweet.source + &#39;&quot;/&gt;&#39; +</div><div>tweet.source + &#39;&lt;/a&gt;&lt;/p&gt;&#39;;</div><div>retval += &#39;&lt;/div&gt;&#39;;</div><div>return retval;</div>
<div>}</div><div><br></div><div>function plotTwt(tweet){</div><div>var twtfeat = new OpenLayers.Feature.Vector(tweet.point);</div><div>tweetz.addFeatures(twtfeat);</div><div>}</div><div>function onPopupClose(evt) </div><div>
{</div><div>selectControl.unselect(selectedFeature);</div><div>}</div><div>function onFeatureSelect(evt, tweet) </div><div>{selectedFeature = evt.feature;</div><div>popup = new OpenLayers.Popup.FramedCloud(</div><div>&quot;chicken&quot;,</div>
<div>evt.feature.geometry.getBounds().getCenterLonLat(),</div><div>null,</div><div>popupHTML(tweet),                  </div><div>null, true, onPopupClose);evt.feature.popup = popup; map.addPopup(popup);}</div></div><br><div class="gmail_quote">
On Sat, Jun 25, 2011 at 1:41 PM, Nicholas Efremov-Kendall <span dir="ltr">&lt;<a href="mailto:n.e.kendall@gmail.com">n.e.kendall@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Thanks Arnd!<div><br></div><div>Will give it a shot.<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Sat, Jun 25, 2011 at 1:26 PM, Arnd Wippermann <span dir="ltr">&lt;<a href="mailto:arnd.wippermann@web.de" target="_blank">arnd.wippermann@web.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>



<div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span>Hi,</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span></span></font> </div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span>if you know the argument &quot;tweet&quot; from your evt.feature, 
then the below code should work:</span></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><span></span></font> </div>
<div dir="ltr" align="left"><font face="Arial"><font color="#0000ff"><font size="2"><div>function onFeatureSelect(evt) <br>{<br>    selectedFeature 
= evt.feature;<br></div><span>    tweet = 
...;</span></font></font></font></div>
<div dir="ltr" align="left"><font color="#0000ff" size="2" face="Arial"><div>    
popup = new 
OpenLayers.Popup.FramedCloud(<br>        
&quot;chicken&quot;,<br>        
evt.feature.geometry.getBounds().getCenterLonLat(),<br>        
null,<br></div>        
popupHTML(tweet),  <span>           
</span> <span>//returns the html 
string</span>                                  <div><br>        
null, true, onPopupClose);<br>    evt.feature.popup = popup; 
<br>    map.addPopup(popup);<br>}<br></div></font></div><span></span><font face="Arial"><font color="#0000ff"><font size="2">Arnd<span></span></font></font></font><br>
<div dir="ltr" lang="de" align="left">
<hr>
<font size="2" face="Tahoma"><b>Von:</b> <a href="mailto:openlayers-users-bounces@lists.osgeo.org" target="_blank">openlayers-users-bounces@lists.osgeo.org</a> 
[mailto:<a href="mailto:openlayers-users-bounces@lists.osgeo.org" target="_blank">openlayers-users-bounces@lists.osgeo.org</a>] <b>Im Auftrag von </b>Nicholas 
Efremov-Kendall<br><b>Gesendet:</b> Samstag, 25. Juni 2011 18:34<br><b>An:</b> 
<a href="mailto:users@openlayers.org" target="_blank">users@openlayers.org</a><br><b>Betreff:</b> [OpenLayers-Users] passing html string 
to popup<br></font><br></div><div><div></div><div>
<div></div>Hi all,
<div><br></div>
<div>I&#39;m currently creating popups and populating their html content with the 
following code</div>
<div><br></div>
<div><br></div>
<div>
<div>function onFeatureSelect(evt) </div>
<div>{selectedFeature = evt.feature;</div>
<div>popup = new OpenLayers.Popup.FramedCloud(</div>
<div>&quot;chicken&quot;,</div>
<div>evt.feature.geometry.getBounds().getCenterLonLat(),</div>
<div>null,</div>
<div>&quot;&lt;div style=&#39;font-size:.8em&#39;&gt;User Name: &quot; +<a href="http://evt.feature.id" target="_blank">evt.feature.id</a> + 
&quot;&lt;/div&gt;&quot;,                  
                   </div>
<div>null, true, onPopupClose);evt.feature.popup = popup; 
map.addPopup(popup);}</div></div>
<div><br></div>
<div>rather than pull out the attributes myself, I&#39;d like to pass in a preformed 
html string via a variable, but I&#39;m not sure how to do this, and I currently 
lack a sufficient knowledge of jscript syntax to research this. I can form an 
html string via this function but I&#39;m not sure how to pass it back to the popup 
function above...</div>
<div><br></div>
<div>
<div>function popupHTML(tweet) {</div>
<div>var retval = &#39;&#39;;</div>
<div>retval += &#39;&lt;div class=&quot;tweet_info&quot;&gt;&#39;;</div>
<div>retval += &#39;&lt;img alt=&quot;&#39; + tweet.from_user_id + &#39;&quot; src=&quot;&#39; +</div>
<div>tweet.profile_image_url + &#39;&quot; class=&quot;tweet_profile&quot;/&gt;&#39;;</div>
<div>retval += &#39;&lt;h3&gt;&#39; + tweet.from_user + &#39;&lt;/h3&gt;&#39;;</div>
<div>retval += &#39;&lt;p&gt;&#39; + tweet.text + &#39;&lt;/p&gt;&#39;;</div>
<div>retval += &#39;&lt;p&gt;Source: &lt;a href=&quot;&#39; + tweet.source + &#39;&quot;/&gt;&#39; +</div>
<div>tweet.source + &#39;&lt;/a&gt;&lt;/p&gt;&#39;;</div>
<div>retval += &#39;&lt;/div&gt;&#39;;</div>
<div>return retval;</div>
<div>}</div></div>
<div><br></div>
<div>thanks again in advance...</div></div></div></div>
</blockquote></div><br></div></div></div>
</blockquote></div><br></div>