This is a service, which is useful to us, and we're interested in seeing how effective App Engine for Java is in serving it. Hopefully enough people will use the service that we'll get some idea about how well it scales.
App Engine is easy to use, but you don't do things the same way as you would for a service built fromAddress the ground up. The normal way to do things is to preprocess each overlay and store the tiles in a database, then serve with lashings of cache. In App Engine we service each request as it comes, creating tiles on the fly, and cache as aggressively as possible. This is less efficient, but plays more to App Engine's strengths -- in particular its image processing framework. The extra work is an extra image compress for each tile. The way App Engine works its also probably simpler to regenerate tiles when the cache expires than to store stuff in the (rather expensive) database.
The most serious problem is that there is no way to get an optimized PNG tile out of App Engine's image framework. Everything seems to be 32 bits and you can't optimize for small color palettes. This results in tiles being up to 3 times larger than they should be. This is not so much of a problem for stand-alone images or baked tiles where we use JPEG. Of course, if you want complex transparency in your overlays then you'll need 32 bit pNG files anyway!
For us generating overlays is more useful as a web service, so that overlays and images can be generated as part of the build process. We have a simple JSON format let's you do this. You can have more than one image in an overlay, which is useful in some scenarios.
In terms of the interface them most useful feature would probably be the ability to align the overlay image with a map visually.
© Copyright Cilogi 2012. All rights reserved.