On 14 Dec 2011, at 05:47, skrite <sh...@skrite.net> wrote:
> ok, even though the @mapped_sites.to_json works, the output of that > does not look like json. It looks like an array > If my memory is correct, that's valid json too ( as are most literals). It's common for the top level thing to be an object rather than an array, but not mandatory. Since the thing you called to_json on was an array, you got the json representation of an array back. To get the non text version of the response, like I said earlier look at response.responseJSON Fred > example: > > var sites = [["35.931341","-102.32205",381.75,288.0,"AL","AL", > 557,"#7F7F7F","#FF0000",287.1,288.3,"AL<br>0 psi",0], > ["35.88125039","-102.3088989",525.0,83.4,"DC","DC", > 34280,"#7F7F7F","#FF0000",83.1,83.3,"DC<br>0 psi",0], > ["35.88125039","-102.3226989",525.0,81.7,"DC2","DC2", > 37241,"#000000","#FF0000",81.7,81.7,"DC2<br>0 psi",0], > ["35.92361","-102.308768",534.75,73.7,"J1","J1", > 559,"#7F7F7F","#FF0000",74.7,73.8,"J1<br>0 psi",0], > ["35.92332","-102.32096",493.5,261.0,"J2","J2",560,"#7F7F7F","#FF0000", > 261.0,261.0,"J2<br>0 psi",0],["35.931354","-102.31308", > 397.5,80.8,"SL1","SL1",561,"#7F7F7F","#FF0000",81.3,81.9,"SL1<br>0 > psi",0],["35.931186","-102.304202",390.0,165.2,"SL2","SL2", > 110823130,"#7F7F7F","#FF0000",165.4,165.6,"SL2<br>0 psi",0], > ["35.938729","-102.29968",397.5,89.3,"SL4","SL4", > 563,"#7F7F7F","#FF0000",89.3,89.3,"SL4<br>0 psi",0], > ["35.931301","-102.29965",397.5,23.7,"SL5","SL5", > 564,"#7F7F7F","#FF0000",23.9,23.0,"SL5<br>0 psi",0], > ["35.924694","-102.299034",333.75,95.8,"SL6","SL6", > 7882,"#7F7F7F","#FF0000",95.8,95.8,"SL6<br>0 psi",0]]; > > and the code seems to work with it like an array. How do i get the > responseText from the server as an array? > > thanks again. > > sk > > On Dec 13, 4:08 pm, Frederick Cheung <frederick.che...@gmail.com> > wrote: >> On 13 Dec 2011, at 19:54, skrite <sh...@skrite.net> wrote: >> >>> Jim. >> >>> You are correct, when i show typeof(sites) from when sites = <%= >>> @mapped_sites => >>> i get object >>> when i do typeof(sites) after getting sites from the >>> url_that_returns_json >>> i get string >> >> responseText is always going to be text if I remember how prototype handles >> thing (the text will just happen to be the string representation of the >> json). >> If the response content-type was set correctly then response.responseJson >> (or something like that) should be populated >> >> Fred >> >> >> >> >> >> >> >>> i suppose that i am not getting returned correctly. >>> if i look at the source of @mapped_sites >>> and from the browser look at url_that_returns_json, >>> they are identical. >> >>> thanks for your help, again. >>> I have learned a lot the last couple of days :) >> >>> On Dec 12, 6:22 pm, Jim Ruther Nill <jvn...@gmail.com> wrote: >>>> On Tue, Dec 13, 2011 at 6:08 AM, skrite <sh...@skrite.net> wrote: >>>>> I am doing something similar here. The website is built on rails 2.3.9 >>>>> and >>>>> uses prototype. >> >>>>> Almost all of what i need to happen does, but i get to the point where >>>>> the update happens and nothing does. >> >>>>> // add circles to map as it initializes >>>>> addCircles(sites, map, markerArray, lineArray); >> >>>>> var pe = new PeriodicalExecuter(refreshCircleMarkers.curry(markerArray, >>>>> lineArray, map), 33); >> >>>>> function refreshCircleMarkers(markerArray, lineArray, map) { >>>>> // first we remove the existing markers in place >>>>> for(i=0; i<markerArray.length; i++) { >>>>> markerArray[i].setMap(null); >>>>> } >> >>>> // and empty the array itself> markerArray = []; >> >>>>> var url = "/group/update_mapv3_circles"; >>>>> new Ajax.Request(url, { >>>>> method: 'get', >>>>> onSuccess: function(response) { >>>>> var sites = response.responseText; >>>>> addCircles(sites, map, markerArray, lineArray); >>>>> } >>>>> }); >> >>>> I see nothing wrong. Does the addCircles function expect a JSON >>>> object for the first param? The only reason I can think why this isn't >>>> working >>>> is a type mismatch. >> >>>>> If i do an alert(response.responseText) the alert will show up and >>>>> display the contents of the @mapped_sites.to_json ( i am using >>>>> render :json => @mapped_sites.to_json in the controller). >>>>> Please let me know if you see something i am doing wrong. >>>>> Thanks for your help on this so far Jim. >> >>>>> sk >> >>>>> On Dec 9, 11:49 pm, Jim Ruther Nill <jvn...@gmail.com> wrote: >>>>>> On Sat, Dec 10, 2011 at 3:56 AM, skrite <sh...@skrite.net> wrote: >>>>>>> I am intrigued by this solution, Jim. >>>>>>> i have a couple of questions, as it seems this is a cleaner way than >>>>>>> what I am trying to do. >>>>>>> The values that determine the circle color are in the database, and >>>>>>> can change while the page is loaded. This is why i need them to >>>>>>> update. >> >>>>>> i'll still go with my suggestion earlier. To update the colors, just >>>>> update >>>>>> the sites variable after completing the ajax request and then call >>>>>> addCircles >> >>>>>> your ajax call may look like the following (this is totally untested :D) >> >>>>>> $.ajax({ >>>>>> url: your_url_here_that_returns_json_equivalent_of_@mapped_sites, >>>>>> success: function(data) { >>>>>> addCircles(data); >>>>>> } >> >>>>>> }); >>>>>>> So, somehow i still need to go to the server for that. I guess i am >>>>>>> missing the part about how to get the @mapped_sites variable to the >>>>>>> controller and back again to the page to rebuild the circles. >>>>>>> Thanks for your time on this. >>>>>>> sk >> >>>>>>> On Dec 9, 9:48 am, Jim Ruther Nill <jvn...@gmail.com> wrote: >>>>>>>> On Fri, Dec 9, 2011 at 11:04 PM, skrite <sh...@skrite.net> wrote: >>>>>>>>> Hey, thanks for these links, very helpful. >>>>>>>>> -sk >> >>>>>>>>> On Dec 8, 7:49 pm, "L.Karthikeyan" <logkart...@gmail.com> wrote: >>>>>>>>>> Hi, >> >>>>>>>>>> For this you need to use rjs Ajax request. Please refer the >>>>>>>>>> following links, you will get an idea. >> >>>>>>>>>> 1.http://railscasts.com/episodes/43-ajax-with-rjs?autoplay=true, >>>>>>>>>> 2. >>>>>>> http://railscasts.com/episodes/229-polling-for-changes?autoplay=true >> >>>>>>>> one more option is to keep @mapped_sites to a javascript variable so >>>>> you >>>>>>>> dont have to use ajax. you might also want to move the makeMarker >>>>> part >>>>>>>> to a js function to tidy up the view and just call that function >>>>> when you >>>>>>>> need >>>>>>>> to update the colors >> >>>>>>>> something along the lines of >> >>>>>>>> var sites = <%= @mapped_sites.to_json %>; >>>>>>>> addCircles(sites); >> >>>>>>>> function addCircles(circles) { >>>>>>>> for(i=0; i<circles.length; i++) { >>>>>>>> center = new google.maps.LatLng(circles[i][0], circles[i][1]); >>>>>>>> siteCircle = makeMarker({ >>>>>>>> position: center, >>>>>>>> strokeColor: "#FF0000", >>>>>>>> strokeOpacity: 0.8, >>>>>>>> strokeWeight: 2, >>>>>>>> fillColor: circles[i][7], >>>>>>>> fillOpacity: 0.75, >>>>>>>> radius: 560, >>>>>>>> map: map, >>>>>>>> center: center, >>>>>>>> radius: circles[i][2], >>>>>>>> title: circles[i][5], >>>>>>>> content: 'content' >>>>>>>> }); >>>>>>>> } >> >>>>>>>> } >> >>>>>>>> then you just need to update the sites variable using js. no need >>>>>>>> to go back to the server. >> >>>>>>>>>> On Thu, Dec 8, 2011 at 1:10 AM, skrite <sh...@skrite.net> wrote: >> >>>>>>>>>>> Hey all, >>>>>>>>>>> i have a google map and i am drawing circles on the map like >>>>> this.. >> >>>>>>>>>>> var latlng = new google.maps.LatLng(35.931387, >>>>>>>>>>> -102.31062); >>>>>>>>>>> var myMapOptions = >>>>>>>>>>> { >>>>>>>>>>> zoom: >>>>>>>>>>> 12, >>>>>>>>>>> center: >>>>>>>>>>> latlng, >>>>>>>>>>> mapTypeId: >>>>>>>>>>> google.maps.MapTypeId.HYBRID >>>>>>>>>>> }; >> >>>>>>>>>>> var map = new >>>>>>>>>>> google.maps.Map(document.getElementById("map_canvas"), >>>>>>>>>>> myMapOptions); >>>>>>>>>>> var infoWindow = new >>>>>>>>>>> google.maps.InfoWindow(); >>>>>>>>>>> var markerBounds = new >>>>>>>>>>> google.maps.LatLngBounds(); >> >>>>>>>>>>> <% @mapped_sites.each do |row| >>>>>>>>>>> %> >> >>>>>>>>>>> // main >>>>>>>>>>> circle >>>>>>>>>>> center = new google.maps.LatLng(<%= "#{row[0]}" %>, <%= >>>>>>>>>>> "#{row[1]}" >>>>>>>>>>> %>); >>>>>>>>>>> siteCircle = >>>>>>>>>>> makeMarker({ >>>>>>>>>>> position: >>>>>>>>>>> center, >>>>>>>>>>> strokeColor: >>>>>>>>>>> "#FF0000", >>>>>>>>>>> strokeOpacity: >>>>>>>>>>> 0.8, >>>>>>>>>>> strokeWeight: >>>>>>>>>>> 2, >>>>>>>>>>> fillColor: '<%= "#{row[7]}" >>>>>>>>>>> %>', >>>>>>>>>>> fillOpacity: >>>>>>>>>>> 0.75, >>>>>>>>>>> radius: >>>>>>>>>>> 560, >>>>>>>>>>> map: >>>>>>>>>>> map, >>>>>>>>>>> center: >>>>>>>>>>> center, >>>>>>>>>>> radius: <%= "#{row[2]}" >>>>>>>>>>> %>, >>>>>>>>>>> title: '<%= "#{row[5]}" >>>>>>>>>>> %>', >>>>>>>>>>> content: '<%= "some contnet >>>>>>>>>>> %>' >>>>>>>>>>> }); >> >>>>>>>>>>> markerArray.push(siteCircle); >> >>>>>>>>>>> my question is, that since the fillColor is going to change >>>>> from >>>>>>> time >>>>>>>>>>> to time, i want to update all the colors of the circles >>>>>>> periodically. >>>>>>>>>>> What i don't know how to do is get the equivelent to the >>>>>>>>>>> @mapped_sites because if i could, i think i could just delete >>>>> the >>>>>>>>>>> existing circles and draw new ones. >> >>>>>>>>>>> How do i get info back from the server periodically to update >>>>> the >>>>>>>>>>> circle colors? >> >>>>>>>>>>> thanks to all. >>>>>>>>>>> skrite >> >>>>>>>>>>> -- >>>>>>>>>>> You received this message because you are subscribed to the >>>>> Google >>>>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>>>>>> To post to this group, send email to >>>>>>> rubyonrails-talk@googlegroups.com >>>>>>>>> . >>>>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>>>>> For more options, visit this group athttp:// >>>>>>>>> groups.google.com/group/rubyonrails-talk?hl=en. >> >>>>>>>>>> -- >> >>>>>>>>>> Regards, >>>>>>>>>> L.KarthiKeyan. >> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups >>>>>>>>> "Ruby on Rails: Talk" group. >>>>>>>>> To post to this group, send email to >>>>> rubyonrails-talk@googlegroups.com >>>>>>> . >>>>>>>>> To unsubscribe from this group, send email to >>>>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>>>> For more options, visit this group at >>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >>>>>>>> -- >>>>>>>> ------------------------------------------------------------- >>>>>>>> visit my blog athttp://jimlabs.heroku.com >> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>> Groups >>>>>>> "Ruby on Rails: Talk" group. >>>>>>> To post to this group, send email to rubyonrails-talk@googlegroups.com >>>>> . >>>>>>> To unsubscribe from this group, send email to >>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >>>>>> -- >>>>>> ------------------------------------------------------------- >>>>>> visit my blog athttp://jimlabs.heroku.com >> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "Ruby on Rails: Talk" group. >>>>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>>>> To unsubscribe from this group, send email to >>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >> >>>> -- >>>> ------------------------------------------------------------- >>>> visit my blog athttp://jimlabs.heroku.com >> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>> To unsubscribe from this group, send email to >> >> ... >> >> read more ยป > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.