Thanks for the tips on optimizing the script.  For the demo, I just
wanted it functional.

For dynamic tiles, you can use cumberland.  Here is a tutorial:

http://code.google.com/p/cumberland/wiki/TileProviderWithAspNet

This takes a map from a file, but you could created your shape on the
fly or pull from a database.  Of course, you'll need a server
available with .Net on it (mono on linux or osx will work).

As for a kml solution, I'm not too familiar with it in that context,
cumberland SVN has support for KML creation, but mainly in the context
of google earth:

http://www.salmonsalvo.net/blog/?p=166

hope that helps,
Scott

On Dec 4, 1:04 pm, bratliff <[EMAIL PROTECTED]> wrote:
> On Dec 4, 2:04 am, scott <[EMAIL PROTECTED]> wrote:
>
>
>
> > I went ahead and used getTileUrl to provide a method that clips tile
> > creation to my bounds as follows:
>
> >         function CustomGetTileUrl(point,zoom)
> >         {
> >                 if (zoom > 16)
> >                 {
> >                         return 'blanktile.png';
> >                 }
>
> >                 // Define our tile boundaries
> >                 // Note: origin in google maps is top-left
> >                 var minLL = new GLatLng(24.67,-81.99);
> >                 var maxLL = new GLatLng(24.29,-81.48);
>
> >                 // convert our lat/long values to world pixel coordinates
> >                 var currentProjection = G_NORMAL_MAP.getProjection();
> >                 var minPixelPt = currentProjection.fromLatLngToPixel(minLL, 
> > zoom);
> >                 var maxPixelPt = currentProjection.fromLatLngToPixel(maxLL, 
> > zoom);
>
> >                 // convert our world pixel coordinates to tile coordinates
>
> >                 var minTileCoord = new GPoint();
> >                 minTileCoord.x = Math.floor(minPixelPt.x / 256);
> >                 minTileCoord.y = Math.floor(minPixelPt.y / 256);
>
> >                 var maxTileCoord = new GPoint();
> >                 maxTileCoord.x = Math.floor(maxPixelPt.x / 256);
> >                 maxTileCoord.y = Math.floor(maxPixelPt.y / 256);
>
> >                 // filter out any tile requests outside of our bounds
> >                 if (point.x < minTileCoord.x ||
> >                         point.x > maxTileCoord.x ||
> >                         point.y < minTileCoord.y ||
> >                         point.y > maxTileCoord.y)
> >                 {
> >                         return 'blanktile.png';
> >                 }
>
> >                 return 'reefs/' + zoom + '/' + point.x + '_' + point.y + 
> > '.png';
> >         }
>
> Looks good.
>
> You may be able to save yourself a few cycles if you do the pixel
> computations just once.
>
>         pixel=[];
>
>         pixel[0]=google
>                 .getCurrentMapType()
>                 .getProjection()
>                 .fromLatLngToPixel(new GLatLng(LL[2],LL[0]),17);
>
>         pixel[1]=google
>                 .getCurrentMapType()
>                 .getProjection()
>                 .fromLatLngToPixel(new GLatLng(LL[3],LL[1]),17);
>
>         box=[{},{}];
>
>         box[0].x=Math.min(pixel[0].x,pixel[1].x);
>         box[0].y=Math.min(pixel[0].y,pixel[1].y);
>
>         box[1].x=Math.max(pixel[0].x,pixel[1].x);
>         box[1].y=Math.max(pixel[0].y,pixel[1].y);
>
> In your getTileUrl function, you could do the following:
>
>         if (box[1].x<(((xy.x+0)<<(25-z))-0)) return "fake tile";
>         if (box[1].y<(((xy.y+0)<<(25-z))-0)) return "fake tile";
>         if (box[0].x>(((xy.x+1)<<(25-z))-1)) return "fake tile";
>         if (box[0].y>(((xy.y+1)<<(25-z))-1)) return "fake tile";
>
>         return "real tile";
>
> Also, if you are interested in drawing your rectangle without GPoly,
> look at:
>
>    www.polyarc.us/boxdiv
>
> > The demo is herehttp://www.salmonsalvo.net/Cumberland:GoogleMapsTest
> > (By the way, I am working on an open source project in which one
> > feature is google maps tile creation (including tile 
> > pyramids):http://code.google.com/p/cumberland/)
>
> I looked at it.  Very cool.
>
> Perhaps you can help me.  I am trying to break the dependency on
> Google's "mapsdt" without generating tiles for every zoom level in
> every color.  I have eight redundant KML files for each state in each
> color.  I am not aware of a way to do run time binding between KML
> files, one with the shapes, another with the colors.  Your suggestions
> will be welcome.
>
> If I can do it server side on Google's "code" server, I believe it is
> the right way to do it.  Unfortunately, I am clueless regarding
> Google's "code" server.  I little example might help a lot.
>
> Thanks very much.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Maps API" 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-API?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to