Помогите разобраться в Веб-картографией, что с чем едят, с чем нужно разобраться

Хочу работать с этой самой картографией, напросился на даже на проектную курсовую, но вот только сейчас понял, что не так всё просто. Нужно вывести любой участок города (Новосибирска), на нем на некоторых домах всплывающие окна с информацией об организациях в этом доме.
Нашел в сети проект http://www.tomsk.ru09.ru/map
Не пойму какие технологии на нем используются:
1) От куда взять мне такую карту? Неужели всё рисовать самому?
2) С помощью каких програмных средств рисуются карты, слои для них.
3) Что за рендеринг тут используется.
4) О чем следует почитать, чтобы делать подобные вещи?
На самом сайте присутствует код (возможно он подскажет):
Код: Выделить всё
<script type="text/javascript">
function Init(){
if(window.Map !=undefined && window.SearchHelper!=undefined && window.control==undefined){
var map = new Map({divid: 'map'});
map.search_helper = new SearchHelper('ss');
map.hSplitter = new Splitter('map_hsplit','table_right','table_left', {splitterType: 'h', area1MinSize: 300, area2MinSize: 300, wysiwyg:true});
map.hSplitter.addEvent('resize', function(args){
map.matrix.InitOffset();
map.streetViewer.SetPosition();
});
map.hSplitter.Init();
map.vSplitter = new Splitter('map_vsplit','table_pano','table_info', {splitterType: 'v', area1MinSize: 100, area2MinSize: 100, wysiwyg:true});
map.vSplitter.addEvent('resize', function(args){
resize_info();
map.streetViewer.SetPosition();
});
map.vSplitter.Init();
window.addEvent("resize", resize_info);
resize_info();
if(map.matrix)map.matrix.InitOffset();
map.CatSearch();
}
}
/*ресайз информационного блока*/
function resize_info(){
try{
var table_info = $('table_info');
var histtoolbar = $('histtoolbar');
var size = table_info.getSize();
var hist_size = histtoolbar.getSize();
$('right').setStyle('height', size.y - hist_size.y - 3);
}catch(e){}
}
window.addEvent("domready", function() {Init();});
</script>
Трудно разобраться, с чего начать.
Помогите пожалуйта...