【问题标题】:Does Google Maps still support InfoBox?谷歌地图是否仍然支持信息框?
【发布时间】:2017-12-31 22:16:06
【问题描述】:

我希望在谷歌地图中创建一个自定义 infoWindow,我相信创建一个 infoBox 是一种方法。但是,我在谷歌地图的文档中没有看到任何文档或对 infoBox 的引用。此功能是否已弃用?我应该改用自定义弹出窗口吗?

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    InfoBox 库从来都不是 Google Maps Javascript API v3 的一部分。它是一个第三方库,仍然可以在 GitHub 上找到。

    https://github.com/googlemaps/v3-utility-library/tree/master/archive/infobox

    注意:它也可以在我的 GitHub 帐户中找到:

    https://github.com/geocodezip/v3-utility-library/tree/master/archive/infobox

    代码 sn-p(基本示例):

    function initialize() {
            var secheltLoc = new google.maps.LatLng(49.47216, -123.76307);
    
            var myMapOptions = {
                 zoom: 15
                ,center: secheltLoc
                ,mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
    
    
            var marker = new google.maps.Marker({
                map: theMap,
                draggable: true,
                position: new google.maps.LatLng(49.47216, -123.76307),
                visible: true
            });
    
            var boxText = document.createElement("div");
            boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px;";
            boxText.innerHTML = "City Hall, Sechelt<br>British Columbia<br>Canada";
    
            var myOptions = {
                 content: boxText
                ,disableAutoPan: false
                ,maxWidth: 0
                ,pixelOffset: new google.maps.Size(-140, 0)
                ,zIndex: null
                ,boxStyle: { 
                  background: "url('tipbox.gif') no-repeat"
                  ,opacity: 0.75
                  ,width: "280px"
                 }
                ,closeBoxMargin: "10px 2px 2px 2px"
                ,closeBoxURL: "https://www.google.com/intl/en_us/mapfiles/close.gif"
                ,infoBoxClearance: new google.maps.Size(1, 1)
                ,isHidden: false
                ,pane: "floatPane"
                ,enableEventPropagation: false
            };
    
            google.maps.event.addListener(marker, "click", function (e) {
                ib.open(theMap, this);
            });
    
            var ib = new InfoBox(myOptions);
    
            ib.open(theMap, marker);
        }
      google.maps.event.addDomListener(window, 'load', initialize);
    html, body {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    }
    #map_canvas {
    width: 100%;
    height: 100%;
    }
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
    <script src="https://cdn.jsdelivr.net/gh/googlemaps/v3-utility-library@master/archive/infobox/src/infobox.js"></script>
    <div id="map_canvas"></div>
        <p>
        This example shows the "traditional" use of an InfoBox as a replacement for an InfoWindow.

    【讨论】:

    • 在我的 GitHub 帐户中添加了有关复制的信息,工作代码为 sn-p。请注意,GitHub 项目中有示例,StackOverflow 上的其他问题中有示例。如果您发现由于图书馆的搬迁而不再工作的一个,它们可以被修复。
    猜你喜欢
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2013-02-03
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    相关资源
    最近更新 更多