2012-07-10 47 views
1

如何使用Google地图图层在OpenLayers内使用Google Adsense?OpenLayers + Google adsense

代码使用AdSense谷歌地图(V2)地图内:

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> 

result ads in google maps 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对象?然后我可以使用第一个代码来添加广告。

回答

0

我发现它!综观的OpenLayers源代码和萤火虫:)

看来,当你有这样的代码

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 

因此,根据this,它会像

## 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); 

(未测试)

+1

请注意,Google地图adsense库现在已被弃用:https://developers.google.com/maps/documentation/javascript/advertising – 2016-04-11 10:39:57