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
Google maps 谷歌地图API-信息窗口高度和平移_Google Maps_Kml_Infowindow - Fatal编程技术网

Google maps 谷歌地图API-信息窗口高度和平移

Google maps 谷歌地图API-信息窗口高度和平移,google-maps,kml,infowindow,Google Maps,Kml,Infowindow,我正在使用GoogleMapsAPI(v2)在世界地图上显示国家覆盖图。数据来自KML文件,该文件包含多边形坐标以及每个国家的HTML描述。单击该国家/地区时,此说明将显示在“信息窗口”语音气泡中 起初我遇到了一些麻烦,因为信息窗口没有扩展到它们包含的HTML内容的大小,所以较长的窗口会溢出边缘(这似乎是一个常见问题)。我可以通过将信息窗口重置为特定高度来解决此问题,如下所示: GEvent.addListener(map, "infowindowopen", function(iw) { iw

我正在使用GoogleMapsAPI(v2)在世界地图上显示国家覆盖图。数据来自KML文件,该文件包含多边形坐标以及每个国家的HTML描述。单击该国家/地区时,此说明将显示在“信息窗口”语音气泡中

起初我遇到了一些麻烦,因为信息窗口没有扩展到它们包含的HTML内容的大小,所以较长的窗口会溢出边缘(这似乎是一个常见问题)。我可以通过将信息窗口重置为特定高度来解决此问题,如下所示:

GEvent.addListener(map, "infowindowopen", function(iw) { iw = map.getInfoWindow(); iw.reset(iw.getPoint(), iw.getTabs(), new GSize(300, 295), null, null); });
虽然不理想,但它确实有效。但是现在,当信息窗口打开时,它们的顶部有时会被地图的边缘遮挡,因为地图不会平移到可以查看所有内容的位置

所以我的问题是:

  • 有没有办法让信息窗口自动使用适合其内容的高度,以避免固定到设置的像素高度

  • 如果固定高度是唯一的选择,当信息窗口打开时,有没有办法让地图平移到更合适的位置?我知道map类有一个panTo()方法,但我看不到一种计算正确坐标的方法

  • 以下是我的完整初始化代码:

    google.load("maps", "2.x");
    
    // Call this function when the page has been loaded
    function initialize() {
      var map = new google.maps.Map2(document.getElementById("map"), {backgroundColor:'#99b3cc'});
    
      map.addControl(new GSmallZoomControl());
    
      map.setCenter(new google.maps.LatLng(29.01377076013671, -2.7866649627685547), 2);
    
      gae_countries = new GGeoXml("http://example.com/countries.kmz");
      map.addOverlay(gae_countries);
    
      GEvent.addListener(map, "infowindowopen", function(iw) { iw = map.getInfoWindow(); iw.reset(iw.getPoint(), iw.getTabs(), new GSize(300, 295), null, null); });
    }
    google.setOnLoadCallback(initialize);
    

    我最终解决了这个问题,删除了我的调整大小侦听器,并在气球的开头添加了一些文本,然后使用CSS将气球隐藏起来。需要反复试验才能确定正确的高度。这不是一个理想的解决方案,但在API的未来版本提供多一点控制之前,它是可以工作的