如何为谷歌地图信息窗口设置边界半径

Posted

技术标签:

【中文标题】如何为谷歌地图信息窗口设置边界半径【英文标题】:how do set border radius for google map infowindow 【发布时间】:2012-02-13 22:24:41 【问题描述】:

我有谷歌地图信息窗口,我想将边界半径设置为信息窗口。 那怎么办呢。

这是我的代码

  var latlng = new google.maps.LatLng(lat,lng);
  var myOptions = 
   zoom : 8, 
   center : latlng,
   mapTypeId : google.maps.MapTypeId.ROADMAP
   
 var map = new google.maps.Map(document.getElementById("map_canvass"),
 myOptions);
 var infowindow = new google.maps.InfoWindow();
 infowindow.open(map, marker); 

【问题讨论】:

已经回答了一个非常相似的问题:Google Maps: How to create a custom InfoWindow?。它专门讨论了设置圆角半径。 【参考方案1】:

以前的答案似乎已经过时了,我使用以下 css 成功地做到了这一点:

.gm-style > div > div + div + div > div > div + div > div > div > div + div 
    border-radius: 10px 10px 10px 10px !important;

【讨论】:

【参考方案2】:

是的,似乎链接已失效,旧代码不再有效。试试我的脚本

var infoElement = $('.gm-style-iw').prev();
var boxWrapper = infoElement[0].childNodes[1],
    boxContainer = infoElement[0].childNodes[3];

//then set border-radius to wrapper and container via jQuery
$(boxWrapper).css(
    borderRadius: 4
);
$(boxContainer).css(
    border: '2px solid #FFC800', // if you wanna override new border
    borderRadius: 4,
);

preview here

【讨论】:

【参考方案3】:

由于我不喜欢数到 12,我发现可拖动属性可以识别它:

jQuery:

$(document).find('#map_canvas').find( 'div[draggable="false"]' ).css('border-radius', '5px');

CSS:

#map_canvas div[draggable="false"]  border-radius: 5px 

【讨论】:

【参考方案4】:

您也可以使用 CSS 来实现。对我来说是这样的:

#map_canvass > div > div > div > div > div:not(:first-child) > div > div:nth-child(12) 
   border-radius: 10px 10px 10px 10px;

【讨论】:

【参考方案5】:

我认为您必须创建一个自定义信息框叠加层来更改内容以外的任何内容,如果我没记错的话,谷歌地图 infoWindow 就是一个缩放图像。

去定制!这里的例子: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html

这里: http://gmaps-samples-v3.googlecode.com/svn/trunk/infowindow_custom/infowindow-custom.html

【讨论】:

以上是关于如何为谷歌地图信息窗口设置边界半径的主要内容,如果未能解决你的问题,请参考以下文章

嵌入谷歌地图的iFrame上的CSS边框半径,不起作用

无法单击标记 - 谷歌地图集群Android,无法在谷歌地图中显示信息窗口

显示信息窗口后阻止谷歌地图移动

通过单击地图关闭谷歌地图中的信息窗口?

在谷歌地图上绘制区域

如何在谷歌地图上显示多个信息窗口?