views:

270

answers:

1

I am looking for a reference on how custom map like gothere.sg is built. As far as I can figure out from understanding their architecture, they are using their own map server (their visual map looks so beautiful). On geocoding and much other functionalities, they're still reliant on Google Maps API.

Please post what you understand from seeing gothere.sg or provide similar reference for:

  1. Building custom map like gothere.sg
  2. Custom plotting of the map
+1  A: 

Looks like they are using a custom tileset to host there own map tiles and use the Google Maps API to do the panning/zooming stuff:

From there source (the code is obfuscated, but there are some easily recognizable bits):

var Ag=new google.maps.TileLayer(
                new google.maps.CopyrightCollection("gothere.sg"),
                10,22,{isPng:true,opacity:1});

This is one of the first things you have do do when you are setting up your own TileLayer.

I have answered a question previously which included a HowTo for implementing this sort of thing. You can find it here:

http://stackoverflow.com/questions/1058988/marking-streets-in-google-maps/1061003#1061003

They are also setting up there own GUI elements on top of the map to customize their look and feel.

Response to comment:

In the other answer I show a simple example of a custom tileset implementation. You can find the doco for it here:

http://code.google.com/apis/maps/documentation/overlays.html#Tile%5FLayer%5FOverlays.

You can put anything you like in your custom tilesets, you certainly aren't limited to cities that Google has mapped. Here are a few other examples of custom tilesets:

Cannonade
Thanks for the reply.Yes, I came to the same conclusion that they're using custom tilesets. But I can't seem to find reference on how to achieve this, like setting up a custom map server.And also is there a way to map a city where google map hasn't shown yet? Perhaps transforming the map from other mapping service into google compatible tilesets?Once again, thank you. :)