使用信息框更改信息窗口

时间:2013-08-29 22:50:18

标签: javascript google-maps google-places-api infowindow infobox

有没有什么方法可以改变infowindow信息框因为我需要比基本信息更多的风格......

代码和演示:http://jsbin.com/EVEWOta/26

google.maps.event.addListener(marker,'click',function(){
        service.getDetails(request, function(place, status) {
          if (status == google.maps.places.PlacesServiceStatus.OK) {
            var contentStr = '<h5>'+place.name+'</h5><p>'+place.formatted_address;
            if (!!place.formatted_phone_number) contentStr += '<br>'+place.formatted_phone_number;
            if (!!place.website) contentStr += '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>';
            contentStr += '<br>'+place.types+'</p>';
            if (!!place.photos) contentStr += '<img src=' + place.photos[0].getUrl({ 'maxWidth': 300, 'maxHeight': 300 }) + '></img>';
            infowindow.setContent(contentStr);
            infowindow.open(map,marker);
          } else { 
            var contentStr = "<h5>No Result, status="+status+"</h5>";
            infowindow.setContent(contentStr);
            infowindow.open(map,marker);
          }
        });

    });
    gmarkers.push(marker);

InfoWindows不能按照我的要求设置样式,所以我需要用信息框更改它,但是如何???

1 个答案:

答案 0 :(得分:1)

这是设计信息窗口的好工具:http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobubble/examples/example.html

此答案还有更多资源:Styling Google Maps InfoWindow

更新: 要在地图上放置信息块,您可以像这样实现它,无论您想要下面的任何选项。

infoBubble = new InfoBubble({
  map: map,
  content: '<br><a target="_blank" href="'+place.website+'">'+place.website+'</a>',
  shadowStyle: 1,
  padding: 8,
  backgroundColor: 'rgb(57,57,57)',
  borderRadius: 4,
  borderWidth: 5,
  borderColor: '#2c2c2c'
});

google.maps.event.addListener(marker, 'click', function() {
  if (!infoBubble.isOpen()) {
    infoBubble.open(map, marker);
  }
});