This chunker started life in a project of mine, and targeted MS Virtual Earth (as at the time only VE had decent Europe maps). Now Google has good Europe maps, and the freeness of VE kind of vanished, so the code was ported over to Google Maps. When I saw there didn't seem to be anything that did what I wanted (i.e. no code to nick), I rolled the chunker into its own component and made it available.
Because the project it comes from is multi-lingual, this is designed to be as well. Just supply your own text!
Data is pulled down from the server in chunks. In this initial release, the chunk size is fixed in 0.5 degree blocks. The blocks full of markers are added to the map automatically and removed when they are moved off the screen. Once the user zooms out past a (user configurable) level, the markers are removed and replaced with an opaque rectangular overlay saying xx items. All text is configurable (so easy for internationalization). The limit at which chunks are pulled back is again user configurable. You don't want somebody to zoom out to see the whole world and pull it back in 1/2 degree chunks... The server side is very simple and easily portable from PHP. Though the current implementation attempts to be as efficient as possible by caching the database results in gzipped format, and also pays attention to the if-modified-since HTTP header, so not returning the results unless anything has changed. To run the server script as is, you will need PEAR::DB and PEAR::Cache_Lite. If you want the caching to work, make sure your webserver can write to the directory you point it at. Oh and dont forget to clear the cache when you add/remove/edit items in your db as of course the cache will go out of sync.
This is only the start. Later versions will have a user configurable level at which markers will be loaded and load meta chunk information. Instead of loading each individual chunk just to see how many markers are in to show the overlay image, the count of items in each chunk for a large swathe of the map will be loaded in a large block.
Tested working with Internet Explorer 6, Firefox 1.5, Opera 9. Somebody test Safari for me please. Or perhaps it might be a good idea if Apple were to make some dev machines we (as interactive web developers) could VNC into so we could test on Safari for all the people who have too much money to spend on hardware.