Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图信息框在缩放时正在改变位置_Javascript_Google Maps_Google Maps Api 3_Infobox - Fatal编程技术网

Javascript 谷歌地图信息框在缩放时正在改变位置

Javascript 谷歌地图信息框在缩放时正在改变位置,javascript,google-maps,google-maps-api-3,infobox,Javascript,Google Maps,Google Maps Api 3,Infobox,这是人们普遍存在的问题吗? 下面是本期中问题的屏幕截图,它位于右侧: 在这里,它被放大,但信息框的位置不正确。 有人知道如何在房子上方的任何位置排列这个信息框吗 我在这里有一些共同点,你可以看到这个问题: 下面的代码显示了它的设置方式: for (i = 0; i < locations.length; i++) { var myLatLng = {lat: locations[i][0].lat, lng: locations[i][0].lng}; mar

这是人们普遍存在的问题吗? 下面是本期中问题的屏幕截图,它位于右侧:

在这里,它被放大,但信息框的位置不正确。

有人知道如何在房子上方的任何位置排列这个信息框吗

我在这里有一些共同点,你可以看到这个问题:

下面的代码显示了它的设置方式:

for (i = 0; i < locations.length; i++) {
        var myLatLng = {lat: locations[i][0].lat, lng: locations[i][0].lng};

    marker = new google.maps.Marker({
        position: myLatLng,
        icon: icon1,
        map: map
    });

    setInfoWindow(marker);
    setMarker(marker);
    setMarkerSize(marker);
}

function setInfoWindow(marker) {
    var infobox = new InfoBox({
        content: contentString,
        disableAutoPan: false,
        maxWidth: 170,
        pixelOffset: new google.maps.Size(-110, -50),
        zIndex: null,
        alignBottom: true,
        boxStyle: {
            background: "url('http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/examples/tipbox.gif') no-repeat",
            opacity: 1,
            width: "200px"
        },
        closeBoxMargin: "12px 4px 2px 2px",
        closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif",
        infoBoxClearance: new google.maps.Size(1, 1)
    });

   map.addListener('zoom_changed', function() {
        if (map.getZoom() === 18) {
            infobox.pixelOffset = new google.maps.Size(-110, -190);
            console.log(infobox.pixelOffset)
        }
    });
}
for(i=0;i

它正在记录新的值,但它没有改变它的位置。

关于挫折的时间,我们理解。我们都去过那里,这和草皮有关

请尝试以下方法:

infobox.setOptions({pixelcoffset:newgoogle.maps.Size(-110,-190)})


当您直接设置属性时,Google maps对象通常不会更新其外观。

请提供一个例子来说明您的问题。@geocodezip它有什么问题?很多东西:您没有弄清楚问题出在哪里(信息框应该在哪里?在两个pix中对我来说看起来几乎一样),你是从另一个问题复制粘贴的,没有引用内容,因此它看起来像是你问题中令人困惑的一部分,如果你的问题与另一个问题相同,你需要非常清楚地说明它不是另一个问题的副本:为什么这个问题的答案对你不起作用?最后但肯定不是最不重要的,在我看来,你的问题实际上与另一个问题无关:在另一个问题中,问题是信息框只对一个标记有效,而不是对多个标记有效,因为一个经典的闭合循环问题,你的问题是关于微调信息框的位置(我真的说不出来)你似乎没有抓住要点。世跆联是邓肯吗?邓肯是回答你另一个问题的人。在这个问题中引用他而不提及这一点会让任何人在阅读这篇文章时不知所措,除非他们阅读了另一篇。他们为什么要这样做?它与此无关(即使是同一段代码)。您有两个独立的问题,引用另一个问题会混淆问题,并且没有任何好处。在另一个问题中,您在向数组中的每个标记添加侦听器时遇到问题,在这个问题中,您需要有关侦听器如何工作的帮助。非常感谢您!@!#@$$!$@也救了我一天。非常感谢你。