Другой идеей является создание второй карты, ее стиль по-другому через StyledMapType, сделать ее абсолютно позиционированной и поставить перед первой графикой, сделанной в сером виде.
Вы можете сделать это оглядеться, используя -webkit-маску, как описано here
Вы также должны синхронизировать события между картами, так что они совпадают, то есть по центру к одной и той же позиции и всегда имеют одинаковый уровень масштабирования. Вы должны также создать какой-блокатор, чтобы избежать рекурсивных вызовов
var block = false;
google.maps.event.addListener (thismap, 'center_changed', function(event) {
if (block) return;
block = true;
othermap.setCenter(thisMap.getCenter());
block=false;
});
То же самое должно быть сделано для «center_changed» (для управления картами центровки) и «zoom_changed» (карты контроля масштаба), для обеих карт
Здесь я настроить example
Если вам нужно будет создать более одной карты таким образом, вам нужно сделать больше работы, чтобы сделать их придерживаться необходимых точек
Я не» t полагают, что есть какой-либо прямой способ достичь это с API Карт. Вы можете проверить http://googlemapsmania.blogspot.com/2011/10/create-cool-mask-effect-on-google-maps.html, чтобы наложить маску на карту. –