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 - Fatal编程技术网

Javascript 谷歌地图中搜索后的相关缩放

Javascript 谷歌地图中搜索后的相关缩放,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我刚刚在地图中添加了搜索框,但在搜索某个地方(如国家或城市)后,结果并不理想。市场被设置在中心位置,放大的幅度很大 如何根据位置的大小自动定义边界?当搜索结果包含多个位置时,缩放效果良好 以下是我的代码部分: var input = (document.getElementById('pac-input')); map.controls[google.maps.ControlPosition.TOP_LEFT].push(input); var searchBox = new google.m

我刚刚在地图中添加了搜索框,但在搜索某个地方(如国家或城市)后,结果并不理想。市场被设置在中心位置,放大的幅度很大

如何根据位置的大小自动定义边界?当搜索结果包含多个位置时,缩放效果良好

以下是我的代码部分:

var input = (document.getElementById('pac-input'));
map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);

var searchBox = new google.maps.places.SearchBox((input));

google.maps.event.addListener(searchBox, 'places_changed', function() {
    var places = searchBox.getPlaces();

    for (var i = 0, marker; marker = markers[i]; i++) {
        marker.setMap(null);
    }

    markers = [];
    var bounds = new google.maps.LatLngBounds();
    for (var i = 0, place; place = places[i]; i++) {
        var image = {
            url: place.icon,
            size: new google.maps.Size(71, 71),
            origin: new google.maps.Point(0, 0),
            anchor: new google.maps.Point(17, 34),
            scaledSize: new google.maps.Size(25, 25)
        };

        var marker = new google.maps.Marker({
            map: map,
            icon: image,
            title: place.name,
            position: place.geometry.location
        });

        markers.push(marker);

        bounds.extend(place.geometry.location);
    }

    map.fitBounds(bounds);
});
谢谢你的帮助

使用和就地结果

仅当存在单个结果(或者您可以使用第一个结果的视口)时,此选项才起作用


我没有得到相同的缩放,从当前的缩放变为缩小。我收到了这样一条信息
//只有地理编码才有视口。
这是什么意思?
for (var i = 0, place; place = places[i]; i++) {
    var image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25)
    };

    var marker = new google.maps.Marker({
        map: map,
        icon: image,
        title: place.name,
        position: place.geometry.location
    });

    markers.push(marker);
}

map.fitBounds(places[0].geometry.viewport);