【问题标题】:How to change position of Google Maps infoWindow如何更改谷歌地图信息窗口的位置
【发布时间】:2015-09-12 22:04:39
【问题描述】:

正如标题所说,我怎样才能像上图那样改变 infoWindow 的位置?

我已按照 Google 的说明进行操作。现在我想更改 infowindows 的位置,但不知道该怎么做。

function initialize() {
    var myLatlng = new google.maps.LatLng(-25.363882, 131.044922);
    var mapOptions = {
        zoom: 4,
        center: myLatlng
    };

    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var contentString = '<div id="content">' +
        '<div id="siteNotice">' +
        '</div>' +
        '<h1 id="firstHeading" class="firstHeading">Uluru</h1>' +
        '<div id="bodyContent">' +
        '<p><b>Uluru</b>, also referred to as <b>Ayers Rock</b>, is a large ' +
        'sandstone rock formation in the southern part of the ' +
        'Northern Territory, central Australia. It lies 335&#160;km (208&#160;mi) ' +
        'south west of the nearest large town, Alice Springs; 450&#160;km ' +
        '(280&#160;mi) by road. Kata Tjuta and Uluru are the two major ' +
        'features of the Uluru - Kata Tjuta National Park. Uluru is ' +
        'sacred to the Pitjantjatjara and Yankunytjatjara, the ' +
        'Aboriginal people of the area. It has many springs, waterholes, ' +
        'rock caves and ancient paintings. Uluru is listed as a World ' +
        'Heritage Site.</p>' +
        '<p>Attribution: Uluru, <a href="https://en.wikipedia.org/w/index.php?title=Uluru&oldid=297882194">' +
        'https://en.wikipedia.org/w/index.php?title=Uluru</a> ' +
        '(last visited June 22, 2009).</p>' +
        '</div>' +
        '</div>';

    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

    var marker = new google.maps.Marker({
        position: myLatlng,
        map: map,
        title: 'Uluru (Ayers Rock)'
    });
    google.maps.event.addListener(marker, 'click', function () {
        infowindow.open(map, marker);
    });
}

google.maps.event.addDomListener(window, 'load', initialize);

【问题讨论】:

    标签: google-maps google-maps-api-3 google-maps-markers


    【解决方案1】:

    您可以使用pixelOffset 属性。

    var infowindow = new google.maps.InfoWindow({
        pixelOffset: new google.maps.Size(200,0)
    });
    

    https://developers.google.com/maps/documentation/javascript/reference#InfoWindowOptions

    工作代码sn-p:

    function initialize() {
    
      var mapOptions = {
        zoom: 4,
        center: new google.maps.LatLng(0, 0),
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };
    
      var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
    
      var marker = new google.maps.Marker({
        position: new google.maps.LatLng(0, 0),
        map: map,
      });
    
      var infowindow = new google.maps.InfoWindow({
        content: 'Hello world',
        pixelOffset: new google.maps.Size(200, 0)
      });
    
      google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map, marker);
      });
    }
    
    initialize();
    #map-canvas {
      height: 180px;
    }
    <div id="map-canvas"></div>
    <script src="//maps.googleapis.com/maps/api/js?key= AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>

    【讨论】:

    • 我的朋友真棒!
    • 如何在 angular 中实现这一点。我正在使用 agm-info-window
    • 打开一个新问题,因为这与角度无关。
    猜你喜欢
    • 2013-04-24
    • 2023-03-28
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多