【问题标题】:Google Map V3 .png groundoverlay opacityGoogle Map V3 .png 地面覆盖不透明度
【发布时间】:2012-06-23 08:32:27
【问题描述】:

我创建了我的第一个带有 png 叠加层的 Google Map API(感谢 @andresf 的帮助)。

此地图有多个彼此相邻的 png 地面叠加层,可以在http://www.earthstation.mobi/coverage.htm 看到

问题:如何设置每个叠加层的不透明度(透明度?),以便我可以看到叠加层下的地图细节?我不需要在网页上进行调整,脚本中编码的预设就足够了。

上面列出的页面代码是:

 <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
 <title>Earthstation WIMAX Coverage</title>
 <script src="http://maps.googleapis.com/maps/api/js?key=MY_API_KEY&sensor=false"
      type="text/javascript"></script>
  <script type="text/javascript">

  function initialize() {

  var myOptions = {
            center: new google.maps.LatLng(-18.975750, 32.669184),
            zoom: 13,
            mapTypeId: google.maps.MapTypeId.HYBRID
          };

  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

  //note to self co-ords are SW and then NE
  var imageBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(-19.000417,30.999583),
    new google.maps.LatLng(-17.999583,32.000417));

  var oldmap = new google.maps.GroundOverlay(
    "http://www.earthstation.mobi/cloakpS19E031.png",imageBounds);
    oldmap.setMap(map);

    var imageBounds2 = new google.maps.LatLngBounds(
    new google.maps.LatLng(-19.000417,31.999583),
    new google.maps.LatLng(-17.999583,33.000417));

  var oldmap = new google.maps.GroundOverlay(
    "http://www.earthstation.mobi/cloakpS19E032.png",imageBounds2);
    oldmap.setMap(map);

    var imageBounds3 = new google.maps.LatLngBounds(
    new google.maps.LatLng(-20.000417,30.999583),
    new google.maps.LatLng(-18.999583,32.000417));

  var oldmap = new google.maps.GroundOverlay(
    "http://www.earthstation.mobi/cloakpS20E031.png",imageBounds3);
    oldmap.setMap(map);

 var imageBounds4 = new google.maps.LatLngBounds(
    new google.maps.LatLng(-20.000417,31.999583),
    new google.maps.LatLng(-18.999583,33.000417));

  var oldmap = new google.maps.GroundOverlay(
    "http://www.earthstation.mobi/cloakpS20E032.png",imageBounds4);
    oldmap.setMap(map); 

}

 </script>
  </head>
  <body onload="initialize()">
  <div id="map_canvas" style="width: 1000px; height: 600px"></div>
  </body>
  </html>

【问题讨论】:

标签: google-maps-api-3 maps png opacitymask


【解决方案1】:

问题解决了!

声明 var MyOptions 后,添加

 var overlayOpts = {
      opacity:0.3
  }

然后在调用ImageBounds之后直接调用.GroundOverlay调用中的变量

var oldmap = new google.maps.GroundOverlay(
"http://www.earthstation.mobi/cloakpS19E031.png",imageBounds, overlayOpts);
oldmap.setMap(map);

然后在每个 .groundoverlay 调用中使用相同的调用,假设您希望为每个叠加层设置相同的不透明度。如果没有,请贴出另一个 var 并调用它。

成品可见http://www.eartshtation.mobi/coverage.htm - 在Firefox中,Ctrl U会显示源代码。

希望这可以帮助别人避免我花了 3 天时间寻找这个解决方案!

【讨论】:

  • 绝对帮助我避免了费力的搜索!谢谢这个!
【解决方案2】:

这解决了我的问题 - http://www.usnaviguide.com/v3maps/ProjectedOverlayTest.htm

使用代码中的库 (http://www.usnaviguide.com/v3maps/js/ProjectedOverlay.js),您可以通过 overlay.setOpacity() 轻松更改透明度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多