Вам непростую задачу поставили. Что бы запустить подобный сервис есть два пути - либо отдать спецам как советовали выше, либо самому познать кучу вещей и написать много кода.
В принципе, клиентская часть занимает не так много времени. Вы можете взять Гугл АПИ и разобраться для начала в примерах. Почему Гугл, из выше перечисленного работал только с ним, да и примеров в сети приличное количество. Далее, нужно сразу готовится к тому, что все данные в браузер загрузить не получится. Лучше и оптимальнее, тянуть все с сервера. Маркеры и группы маркеров подгружать массивами координат и использовать что-нибудь типа:
http://acme.com/javascript/#Clusterer (кстати там есть пример).
А вот с покрытиями будет сложнее. Если оно состоит из сотни точек, то в принципе можно использовать полигоны (в Гугл АПИ есть примеры) Но если больше - проблема, браузер не потянет.
Самый оптимальный вариант - создать отдельный слой. Предстоит создать из kml - серию тайлов, причем для всех нужных слоев вашей карты. тайл - изображение 256х256рх, накладывается поверх оригинальной карты. Тайл имеет прозрачность. Карту под тайлом видно и видно какую поверхность накрывает ваш дополнительный слой. За счет того, что изображения маленькие они подгружаются быстро + они нужны только для видимой части карты.
Основная задача - как перевести kml в тайлы. В момем случае был написан свой софт
И вот когда все это будет пройдено, придется заняться отладкой и оптимизацией. Включить все слой и маркеры сразу и посомтреть как себя чувствует браузер. Возможно ему будет плохо... Ну Вы понимаете.
Возможно, идея с Сильверлайт будет неплоха, никогда не видел в работе и внутри. Могу гарантированно сказать, что накладывал на карты Гугл до 4х слоев одноврееменно + группу маркеров и все работало с использованием родного АПИ на чистом JS. Против Сильверлайт - гарантированная работа во всех браузерах.
В итоге - много времени, много кода, сторонее ПО или разработка своего. Серьезная задача, но очень интересная. Хочу пожелать Вам удачи!