John, You may find useful the way I solved this problem for my "Itinerary of John" site: http://neolography.com/timelines/JohnItinerary.html
Note the updateMap() function in http://neolography.com/timelines/js/itin-code.js Jon On Tue, Jul 12, 2011 at 12:46 PM, John S <[email protected]> wrote: > I was just talking with one of the creators of the Timemap project, > and he had some good ideas, but the only suggestions he had, came > directly from their plugin, which I'm not implementing, and likely > won't because of the specific way I'm setting this up already. > > But one of the ideas he suggested that I liked the best was, would > there be a simple way, or is there already a simple way to get a min > and max visible date of the top timeline band? I've been searching the > documentation, but I usually have a hard time finding stuff on there. > > On Jul 12, 11:08 am, Michael Nosal <[email protected]> wrote: >> See Timemap, by Nick Rabinowitz:http://code.google.com/p/timemap/ >> That has the code to show only items from the visible portion of the >> timeline on the map. >> >> --Mike >> >> On Jul 12, 2011, at 9:57 AM, John S wrote: >> >> > I'll give you some background on my project... >> > I'm working on a google maps wizard that does... honestly a bit of >> > everything. The timeline is just the latest feature. I am looking at >> > creating something similar to the Timeline project that's built on top >> > of Simile, but for that project, you have to load the map into the >> > timeline object, and I'd rather have the map be the base of >> > everything, and just create my own bridge between the two of them. The >> > reasons get fairly detailed on this, but it's the best approach I can >> > take. >> >> > All of the map markers and and event specific items for the timeline >> > are stored in the database. I make the distinction between map markers >> > and timeline specific items, because I create map markers with start/ >> > end dates, but recognize there are times when we'll want to add >> > something to a timeline that isn't a map marker. These items are >> > pulled from the database and I build a 2d array of events and markers >> > for JS. From there, the JS creates the JSON calls to load them into >> > the timeline. I do it this way because I'm able to dynamically edit >> > everything without ever having to reload the page. So far, none of >> > this is the issue. >> >> > The last bit of functionality that I'm looking to recreate is... as I >> > scroll the timeline, I'd like to have only the items on the top tape >> > be the ones that are visible on the map, so that as you scroll the >> > timeline, you'll be able to see the progression of the items move >> > across the map. Making the markers on the map appear/disappear isn't >> > an issue, that's definitely easy enough to do, the part that I'm >> > stumped on is finding an effective way to track the events on the >> > timeline that are currently visible. >> >> > I understand what you're talking about on the load that it could >> > create, and that was my biggest worry, but I wasn't sure of a better >> > approach for it all. As far as the load goes, I don't think I'll even >> > hit a timeline with more than a couple hundred items on it >> > realistically, though I'm sure now that I said that, I'll come up with >> > one that has over 3000, lol. >> >> > This is a pretty winded post, but I think it explains everything in >> > pretty well detail with the exception of posting sample code, lol. I'd >> > love to hear some more ideas though. >> >> > On Jul 11, 5:44 pm, Michael Nosal <[email protected]> wrote: >> >> John, >> >> What are you trying to make Timeline do? It would help if I understood >> >> what you were trying to accomplish. >> >> Attaching listeners to each individual event is expensive to do, and can >> >> cause performance problems if done incorrectly. >> >> >> Timeline does support the ability to add listeners to the individual >> >> events - the onSelectListener gets fired when you click on an event and >> >> the eventPaintListeners get fired when the Timeline .paint() is called. >> >> >> Because of the expense of adding listeners, and the potential for having >> >> to fire too many listeners, or check too many events, you might look at >> >> using event delegation instead. Set a scroll listener on a band and let >> >> it decide what to do based on the time and events shown. >> >> >> I'm not sure what you mean by having the server side script generate >> >> loading calls for you. Better to have the server provide the data >> >> necessary for your event loading, and use the client side javascript to >> >> load that data. Keeps things cleaner and easier to maintain if you ever >> >> need to change formats, load order, etc. >> >> >> --Mike >> >> >> On Jul 11, 2011, at 5:13 PM, John S wrote: >> >> >>> I've been hunting around for this, but I haven't been able to find >> >>> anything yet, and I wanted to see if anyone else had any suggestions >> >>> for a good way to do this. >> >> >>> I'm currently loading everything dynamically with JSON calls, and >> >>> setting a custom class for each item. (these calls are being generated >> >>> from a server side script that's writing the loading calls for me, so >> >>> the names are something like, "event26" where the 26 is the event ID >> >>> in the database.) >> >> >>> Because of the way I'm doing this I can attach a listener to each >> >>> event individually, based on the unique class names, but I'm just not >> >>> sure what to look for as the trigger of the listener. I'd like to have >> >>> the listener trigger whenever the labels become "visible". I know >> >>> thats a vague way to describe a trigger, but that's half my problem of >> >>> coming up with a better plan of attack. >> >> >>> If anyone has any ideas on how I could go about doing this, it would >> >>> be a serious help! I don't even need the specific code, just a push in >> >>> the right direction should be enough for me to go on. >> >> >>> -- >> >>> You received this message because you are subscribed to the Google >> >>> Groups "SIMILE Widgets" group. >> >>> To post to this group, send email to [email protected]. >> >>> To unsubscribe from this group, send email to >> >>> [email protected]. >> >>> For more options, visit this group >> >>> athttp://groups.google.com/group/simile-widgets?hl=en. >> >> > -- >> > You received this message because you are subscribed to the Google Groups >> > "SIMILE Widgets" group. >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group >> > athttp://groups.google.com/group/simile-widgets?hl=en. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "SIMILE Widgets" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/simile-widgets?hl=en. > > -- You received this message because you are subscribed to the Google Groups "SIMILE Widgets" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/simile-widgets?hl=en.
