代码之家  ›  专栏  ›  技术社区  ›  Ree

GLatLngBounds-中心和缩放级别错误

  •  3
  • Ree  · 技术社区  · 16 年前

    我正在尝试使用GLatLngBounds使地图上的所有标记都可见。下面是我正在做的一个小例子。

    INV.createMap = function(containerId) {
        var map = null;
        var geocoder = null;
        var bounds = new GLatLngBounds();
    
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById(containerId), {
                size: new GSize(600, 300)
            });
            map.setCenter(new GLatLng(54.729378425601766, 25.279541015625), 15);
            map.addControl(new GSmallZoomControl());
            geocoder = new GClientGeocoder();
        }
    
        return {
            markAdress: function(address, infoContentHtml) {
                if (map !== null && geocoder !== null) {
                    geocoder.getLatLng(address, function(point) {
                        if (point) {
                            var marker = new GMarker(point);
                            GEvent.addListener(marker, 'mouseover', function() {
                                if (!map.getInfoWindow().getPoint().equals(this.getLatLng())) {
                                    this.openInfoWindowHtml(infoContentHtml);
                                }
                            });
                            map.addOverlay(marker);
                            bounds.extend(point);
                        }
                    });
                }
            },
    
            finalize: function() {
                map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
            }
        };
    };
    

    用法:

    var m = INV.createMap('whatever');
    var addresses = ...
    for (var i = 0, l = addresses.length; i < l; i++) {
        m.markAdress('address...', 'htmlInfo...');
    }
    m.finalize();
    

    我做错什么了?

    编辑:忽略这个问题。我犯了一个愚蠢的错误-我忽略了这样一个事实:GClientGeocoder发出异步请求,因此finalize()方法调用太早。

    1 回复  |  直到 16 年前
        1
  •  1
  •   ardsrk    16 年前

    下面函数调用的最后一个参数指定缩放级别:

    map.setCenter(new GLatLng(54.729378425601766, 25.279541015625), 15);
    

    This article

    this tutorial 告诉您如何调整地图缩放以正确显示一组标记。

    希望这有帮助