2013-06-02 3 views
4

Есть ли способ установить прозрачность слоя kml при его добавлении? Я добавляю слой kml, который вы не видите на улицах внизу. Есть ли способ сделать этоНастройка прозрачности слоя KML

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var ctaLayer = new google.maps.KmlLayer({ 
    url: 'images/test3.kml' 
    }); 

    var ctaLayer2 = new google.maps.KmlLayer({ 
    url: 'images/test.kml' 
    }); 
    var ctaLayer3 = new google.maps.KmlLayer({ 
    url: 'images/kmztest2.kmz' 
    }); 
    ctaLayer3.setMap(map); 
    ctaLayer2.setMap(map); 
    ctaLayer.setMap(map); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

ответ

3

Вы не можете изменить непрозрачность полигонов в KmlLayer. У вас есть три варианта (что я могу думать):

  1. определяют opacity in the KML

  2. импорт KML, в FusionTables и использовать FusionTablesLayer (which allows you to change the opacity of polygons)

  3. Если KML не слишком сложна, используйте сторонний парсер (geoxml3 или geoxml-v3, который будет анализировать KML и отображать его как родные объекты Google Maps Javascript API v3 (которые позволяют изменять непрозрачность).

+0

Первый вариант работал для меня !! +1 – EMM

3

Как KML добавляют Google Maps API, как изображения в DOM, вы можете изменить его непрозрачность с помощью CSS с помощью функции поиска <img> элементов, которые содержат "kml" в атрибуте src:

#map img[src*='kml'] { 
    opacity: .5; 
} 

Кроме того, вы можете достичь это с помощью JQuery:

jQuery("#map").find("img[src*='kml']").css("opacity","0.5"); 

Но имейте в виду, что при выходе пользователя из просигнальте или перемещает карту, новые KML изображения будут загружены, так что вам придется назвать это JQuery снова.

0

Это решение не является идеальным, поскольку он приводит к незначительному вспышки при изменении уровней масштабирования, но некоторые из них могут найти это полезным:

google.maps.event.addListener(map, 'tilesloaded', function() { 
      $("#map").find("img").css("opacity","0.5"); 
}); 
Смежные вопросы