Is it vain to respond to my own posts? :-) Just wanted to post back that the low-tech solution to the "image loading" problem worked just fine (only 1 div required, with a -1 z index), and is on display here: http://gis.mda.state.mn.us/maps/csgsoil_v3.htm
The images are back in demand and I think the ultimate solution will be a mix of both quick text and the graphs. On Jun 25, 8:38 am, mmdolbow <[email protected]> wrote: > Just wanted to report that I've posted my "solution" for now on this > development page:http://gis.mda.state.mn.us/maps/csgsoil_v3.htm > > I report the sizes of the map div and the temperature graph image on > the left, which you can see change with screen resolution and window > resizing. Unfo, the whole page has to refresh if you resize the > window, cuz crummy IE won't hold the map div otherwise. You can see > the temperature graph gets too small to be readable if your map isn't > at least 300px H x 5000 px W or so. Even that's pushig it. So I'm > going more low-tech: I'm going to have the infoWindow just report the > latest temperature measurement in text instead of showing a graph. > > Speaking of low-tech, on my problem #3, I had a thought: why not just > have two divs on top of one another, one with a "loading" image, and > another on top with the "final" image? If the first "loading" image is > small enough to be called quickly, who cares if it's still there after > the slower-loading image shows up? As long as the second image isn't > transparent... > > Haven't tried that, since I'm ditching my images, but thought I'd > offer it up as a potential solution. > > On Jun 24, 2:22 pm, mmdolbow <[email protected]> wrote: > > > Just thought I'd report some progress. Chad's link to Rob Swan's > > dynamic div sizing solution works well, but of course has to be kluged > > with in order to work with IE. (Even though I get to target IE7, which > > is admittedly crummy but at least not as bad as IE6.) > > > As for sizing the graph inside the infoWindow, I'm having less luck. > > In order to avoid all scrollbars, I have to make the image about half > > the size of the map div at all times, which can result in some > > unreadable graphs when the map is small. If I set a minimum size for > > readability, you get scrollbars - which I would be willing to live > > with if they didn't DOUBLE UP on the right-hand side in IE! Let's just > > say I haven't found these statements from the API docs to be true: > > "By default, an info window expands to fit its content..." > > "If you wish to explicitly size the content, you may use <div>s to do > > so, and enable scrolling if you wish. Note that if you do not enable > > scrolling and the content exceeds the space available in an info > > window, the content may "spill" out of the info window." > > > (those are > > fromhttp://code.google.com/apis/maps/documentation/javascript/overlays.ht...) > > > Instead, the infowindow seems to be made up of several native divs > > that can't be modified - at least one of these divs has overflow:auto > > set and I can't figure out how to override it. The multiple divs > > involved seem to be what's making IE produce multiple vertical > > scrollbars on the right hand side. > > > I'm thinking of displaying the information differently anyway, so I > > may ditch this effort, but I thought I'd share my observations on the > > infowindow. I might put something in that just prompts folks to open a > > big graph in a separate window if their map frame is too small to hold > > a readable graph. > > > On Jun 23, 7:56 am, Chad Killingsworth > > > <[email protected]> wrote: > > > Some Answers: > > > > 1) There is a very elegant solution for dynamically sizing the map to > > > fit the window size (minus header and footer room) using only CSS. > > > Here's the general > > > article,http://www.alistapart.com/articles/conflictingabsolutepositions/, > > > and here's a specific > > > implementation:http://search.missouristate.edu/map/mobile/examples/template.htm > > > > 2) You're going to have to apply some type of algorithm to determine > > > the size. You could use one resolution as your standard size, compare > > > the current viewport size to the standard then proportionally resize > > > the image. You can call map.fitBounds to cause the map to zoom to the > > > correct level and still fit a specific boundary. > > > > 3) Look at the last post here for information on how to detect when an > > > image has > > > loaded:http://www.codingforums.com/archive/index.php/t-48150.html. > > > You can display a loading graphic and replace it when your load event > > > occurs on your dynamic image. > > > > Chad Killingsworth > > > > On Jun 23, 7:39 am, "Dolbow, Mike (MDA)" <[email protected]> > > > wrote: > > > > > Thanks Josh, I'm going to have to give that a shot. > > > > Cheers, > > > > mike > > > > > -----Original Message----- > > > > From: [email protected] > > > > [mailto:[email protected]] On Behalf Of JoshN > > > > Sent: Tuesday, June 22, 2010 6:26 PM > > > > To: Google Maps JavaScript API v3 > > > > Subject: [Google Maps API v3] Re: General Map & InfoWindow Help > > > > > I am trying to answer question 1, I use prototype.js's viewport > > > > features: > > > > So add this to the head: > > > > > <script src="http://www.google.com/jsapi?key=YOUR_SITE_KEY"></script> > > > > > Then this to the top of your file (no longer need the maps.google > > > > script tag), > > > > > google.load("prototype", "1.6.1.0"); > > > > google.load("maps", "3", {"other_params":"sensor=false"}); > > > > > Then add this to your initilization() > > > > > function setSizeMap(){ > > > > var width = Math.floor(document.viewport.getDimensions().width * . > > > > 75); //set the float to percent of screen wanted > > > > var height = Math.floor(document.viewport.getDimensions().height > > > > * .85); //The same > > > > if(width > height){ > > > > //I want a map that's wider than it is tall. > > > > $('map_canvas').setStyle({ > > > > width: width + "px", > > > > height: height + "px", > > > > }); > > > > }else{ > > > > $('map_canvas').setStyle({ > > > > width: width + "px", > > > > height: width + "px", > > > > }); > > > > } > > > > zoomPercent = Math.floor((width*height)/(750*550)); //I am setting > > > > the zoom based on what looks good to me at 750w and 550h > > > > } > > > > > Best, > > > > > On Jun 22, 11:31 am, mmdolbow <[email protected]> wrote: > > > > > Hello all: > > > > > I'm migrating a mashup to API v3 and looking for some general tips. > > > > > Below is the production version in > > > > > v2:http://gis.mda.state.mn.us/maps/csgsoil.htm > > > > > Obviously not the prettiest HTML or Javascript, but it works. (I'm > > > > > citing it here because that's where the v3 version will go when it's > > > > > done, whereas the link I cite below is for testing.) > > > > > > I figured I might as well clean up and try to enhance a few things > > > > > when migrating to v3. I took out all the gunky wrappers and posted > > > > > this as my sample for you all to rip > > > > > apart:http://gis.mda.state.mn.us/maps/csgsoil_v3.htm > > > > > > So, I have 3 questions: > > > > > 1) How would you size the map div to adjust for screen resolution? I > > > > > used a miniscript to change the height of the <td> tag that holds the > > > > > div, but I'm doubtful this is the best approach. > > > > > 2) Similarly, how would you size the image call that creates the soil > > > > > temp graph that fills up the infowindow? Here's my dilemma at various > > > > > screen resolutions: > > > > > - At 800x600, you get scrollbars in the infowindow. > > > > > - At 1024x768, the scrollbars go away but the numbers are pretty > > > > > small and hard to read > > > > > - At 1280x1024, the numbers are easier to read but the map should > > > > > probably be set at a closer zoom so there's not so much space around > > > > > the markers > > > > > 3) Lastly, since the image call can take a while, how would you insert > > > > > a temporary image like "Loading" into the infowindow while the call is > > > > > taking place? > > > > > > Thanks in advance for the help. I realize quite a bit of this is just > > > > > resolving quirks of HTML and screen resolution, but I figure this > > > > > group is pretty good at taking a crack at this. > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups "Google Maps JavaScript API v3" 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/google-maps-js-api-v3?hl=en. -- You received this message because you are subscribed to the Google Groups "Google Maps JavaScript API v3" 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/google-maps-js-api-v3?hl=en.
