Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Lennox Antoine, posted on April 11, 2005

Image Description, by Lennox Antoine

On Wednesday, April 6th, I found out about googles new beta mapping service from this Yahoo news article. I loved this tool, but thought I could improve on a few things. With that, I present to you my version of a 2D GIS ortho viewer over the internet. Its my first program in Java (started learning it Wednesday), but I think its relatively feature complete. Everything was written from scratch, and its a brand new algorithm I developed during my sleepless nights. Here it is for your viewing pleasure :

As for technology details :

It uses a dynamically growing quadtree to house the near infinite resolutions. This means that you can throw in a very low resolution image with an extremely high resolution image and not lose any pixel accuracy when you zoom into the high resolution subset. There is still a little shakyness when you zoom into the low resolution imagery, but this wasn't an issue to me so I never bothered to fix it. Its only there because I don't have the disk space to upload bigger imagery. The quad tree automatically adjusts and frees itself to your viewing position, such that you're never wasting unncessary memory.

Each raster is treated separately. This method is specific to 2D only, but it works pretty nicely. Because each one is separate, we can toggle them on/off as well as apply blending/swiping between the different layers to give true GIS functionality. It should scale very well for thousands of images as well.

The loaded raster resolutions in pixels are :
16,252 x 18,362
7,964 x 11,258
4,320 x 2160

Big by todays graphics card standards, but small by GIS standards. I wish I could upload more higher resolution imagery, but I am limited by my webhost. The current scene takes up a little over 130Mb compressed on the website as it is.

More info is available in the write up on the applet page.


Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

April 11, 2005, 10:41 AM

Looks great man, keep up the good work.
P.S. cant wait for phase 2 and 3


April 11, 2005, 10:55 AM

Nice viewer!

Dan Royer

April 11, 2005, 11:37 AM

Looks great, but I get the feeling the zoom levels at which new textures are loaded needs tweaking. I can zoom to a point where pixels are (appoximately) 8x8 and then just a wee bit more and the next level loads with 1x1s. If they were loaded a little earlier and a fadethrough was used it would be ultra smooth. I think you were totally right, navigating this way is far less painful than the zoom controls in google map viewer.

(Hey, Google! When are you going to add the rest of the planet?!)


April 11, 2005, 12:17 PM

I think that may just be a paging issue. In theory, everything should load from lowest to highest level, without skipping steps. I'll look into this some more when I get time.


April 11, 2005, 01:45 PM

hey cool, you're the dude who did that hw-accelerated stuff with lray! :D

haven't tried your viewer yet (or google's for that matter), checking both now...


April 12, 2005, 01:58 PM

Good Job.

Aaron Wirtz

April 12, 2005, 07:50 PM

I saw the same thing; there are several zoom levels midway between datasets at which the pixelization becomes excessive. Is all the scaling only posative? If so, perhaps you should consider adjusting your model to prefer negative scaling, since it looks cleaner. Or maybe just load a negatively-scaled copy of the next higher-res dataset after the mouse button is released. (so it doens't slow down the browsing)


April 12, 2005, 08:15 PM

I looked into this, and I think it may be a caching issue. It seems blocks are getting loaded up, and it takes some time for it to catch up, which is why you get the pixelated region. Should be easy to fix....when I get time. Thanks for checking it out.


April 13, 2005, 06:18 AM

Man, I remember your Xonnel engine from waaay back when... I emailed you about something and you were trying to explain to me the speed benefits of MIP mapping... why do I remember this? Probably because I was a big fat noob at the time... ok, maybe not fat.

Aaron Wirtz

April 13, 2005, 05:29 PM

I still think we are talking about different things. I think you are talking about the large pixelization that appears at the edges when panning and zooming, and which clears up if you give it a second to catch up.
What I am talking about is the slightly-less obtrusive, but still noticable pixelization of the entire image, which does not clear up if given a few seconds to catch up, and which seems to be the result of the rasterizer choosing not to load the next-higher res image until the ratio of that image would be 1:1. I'd send coordinates and zoom factor if you displayed zoom factor. :-P

This thread contains 10 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.