an update below -- On Jan 21, 2012, at 3:48 PM, Puneet Kishor wrote:
> > On Jan 19, 2012, at 7:23 PM, Stephen Woodbridge wrote: > >> On 1/19/2012 6:54 PM, Puneet Kishor wrote: >>> I want to add the permalink control to the map, but I don't want to display >>> it as is out of the box. Or, to be more precise, I want to build my own >>> permalink link so that I can add a few more custom params to the link that >>> the control builds, and then do something with that link, for example, >>> store it in the db, or pop it in a window, etc. >>> >>> How can I do that? >> >> Here is an example where are add additional parameters: >> >> http://gis.imaptools.com/routing/leaddog/?zoom=14&lat=33.85749&lon=35.51971&layers=B0TTTF&start=35.493583%2033.826664&stop=35.565174%2033.864285&method=STS&lang=arb >> >> Feel free to look at the page source to see how I did it. > > > Great help, thanks. That got me started, but I don't have a working solution > yet. Here is what is going on... I am trying to customize the permalink > control using the following function > > var state = {}; > > new OpenLayers.Control.Permalink( > "permalink", > uri, > { > "createParams": function() { > var args = > OpenLayers.Control.Permalink.prototype.createParams.apply( > this, arguments > ); > > // add my args here > if (state) { > for (var s in state) { > args[s] = encodeURI(state[s]); > } > } > > return args; > } > } > ); > > and then, in my map I have buttons that invoke different functionality. For > example, one functionality is like so > > "doThat": function(a, b, c) { > > // update state > state = { > action: "doFoo", > params: { > a: a, > b: b, > c: c > } > }; > > .. do something .. > }; > > My intent is to generate a permalink that looks like so > > > http://server/app?zoom=6&lat=-1.35&lon=-38.14&layers=TB000TTTTT&action=doThat&a="foo"&b=43&c="bar" > > The problem is, by the time doThat() is called and it updates state, the > permalink has already been formed, so it doesn't yet have the updated values > from "state". If I now move the map or do something else, that is when the > permalink gets updated with the values from "state" but it is always one > action behind … how do I get around this phase lag? In other words, I want to > update the permalink *after* the "state" has been updated so that when > "createParams" is called, it creates the correct permalink. > one additional note: I don't want the actual link that the user would click to get the permalink to have the updated link. Instead, I want to actually fire off a function to do something with that link. Right now I am using something like so, which actually does work. Just want to confirm if there is a better way <a href="" id="permalink">permalink</a> $("#permalink").click(function() { doSomethingWithPermalink($(this).attr("href")); return false; }); For example, I might want to replace the href with '<div id="permalink"></div>'. In which case, how would I get the current value of permalink? -- Puneet Kishor_______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
