1

如何使用 Google 地图图层在 OpenLayers 中使用 Google Adsense?

在 google maps (v2) 地图中使用 adsense 的代码:

map = new GMap2(document.getElementById("Gmap"));
adsManager = new GAdsManager(
    map, 
    "ca-pub-xxxxxxxxxxxxxxxx", 
    {
        maxAdsOnMap : 4,
        style: 'adunit'
    }
);
adsManager.enable();

## The HTML:
<div id="Gmap"></div>

谷歌地图 v2 中的结果广告

在 openlayers 中显示谷歌地图的代码:

map = new OpenLayers.Map("olmap")
var gmap = new OpenLayers.Layer.Google("Google Streets", {numZoomLevels: 20});
map.addLayers([gmap]);

## The HTML:
<div id="olmap"></div>

有什么方法可以在 openlayers 中获取 google maps 对象?然后我可以使用第一个代码添加广告。

4

1 回答 1

0

我找到了!查看 Openlayers 源代码和 firebug :)

似乎当您拥有此代码时

map = new OpenLayers.Map("olmap")
var gmap = new OpenLayers.Layer.Google("Google Streets", {numZoomLevels: 20});
map.addLayers([osm, gmap]);

## The HTML:
<div id="olmap"></div>

你可以使用这个js来引用谷歌地图对象

map.baseLayer.mapObject

所以,根据这个,它会是这样的

## html
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=adsense&sensor=true_or_false"></script>
<div id="olmap"></div>

## js
map = new OpenLayers.Map("olmap")
var gmap = new OpenLayers.Layer.Google("Google Streets", {numZoomLevels: 20});
map.addLayers([gmap]);

var adUnitDiv = document.createElement('div');
var adUnitOptions = {
  format: google.maps.adsense.AdFormat.HALF_BANNER,
  position: google.maps.ControlPosition.TOP,
  map: map.baseLayer.mapObject,
  visible: true,
  publisherId: 'YOUR_PUBLISHER_ID'
}
adUnit = new google.maps.adsense.AdUnit(adUnitDiv, adUnitOptions);

(未测试)

于 2012-07-11T19:33:03.010 回答