Javascript 基于谷歌地图结果的缩放

Javascript 基于谷歌地图结果的缩放,javascript,angularjs,google-maps,openlayers,Javascript,Angularjs,Google Maps,Openlayers,这是我当前的代码: $scope.search = function(){ Request.googleAPI($scope.searchForm).then(function(data){ console.log("Search result: ") console.log(data) var actualZoom = map.getView().getZoom(); console.log("Zoom level: "

这是我当前的代码:

$scope.search = function(){
    Request.googleAPI($scope.searchForm).then(function(data){
        console.log("Search result: ")
        console.log(data)
        var actualZoom = map.getView().getZoom();
        console.log("Zoom level: " + actualZoom)
        var point = [data.data.results[0].geometry.location.lng, data.data.results[0].geometry.location.lat];
        var size = /** @type {ol.Size} */ (map.getSize());
        view.centerOn(ol.proj.transform(point, 'EPSG:4326', 'EPSG:3857'), size, [size[0]/2, size[1]/2]);
        /*
        map.setView(new ol.View({
            projection: 'EPSG:4326',
            center: [long, lat], //long,lat
            zoom: actualZoom
        }));
        */
    })
}
我已经尝试使用底部的注释(建议如此)。我把它改成只使用“缩放”,但它会把我的地图变成白色

Google Maps请求包含几何点位置(lat/lng),但也包含边界框,该边界框应确定缩放级别。如何使用此边界框正确更新地图


如果你需要看更多的代码,这里是我正在使用的代码。

解决了我的数学问题

$scope.search = function(){
    Request.googleAPI($scope.searchForm).then(function(data){

        var point = [data.data.results[0].geometry.location.lng, data.data.results[0].geometry.location.lat];
        var size = /** @type {ol.Size} */ (map.getSize());
        view.centerOn(ol.proj.transform(point, 'EPSG:4326', 'EPSG:3857'), size, [size[0]/2, size[1]/2]);

        // To adjust Zoom Level
        var bound = data.data.results[0].geometry.viewport;
        var east = bound.northeast.lng
        var west = bound.southwest.lng
        var zoom = 9 - Math.floor(Math.log(Math.abs(west-east))/Math.log(2));
        map.getView().setZoom(zoom);
    })
}

请提供一个示例来说明问题(可能不需要实际调用
.googleAPI
,只需要返回数据)。我不认为一个人需要比我提供的更多的东西。你介意用别针指出这段代码中缺少的东西吗?这样我就可以从错误中吸取教训了?无论如何,我已经找到了一个解决方案并发布了。不过,我只能接受明天的答案。我很高兴你解决了你的问题。请在问题本身中提供一个链接,而不仅仅是一个指向外部站点的链接。这是一个指向我正在处理的实际代码的链接,上次我复制粘贴了那么多代码时,也有人警告我不应该放那么多信息。可能看起来不清楚的变量(如
视图
映射
)对我来说同样不清楚,因为这是我分配给其他人的代码。您的完整代码(不一定)是一个。外部站点(您正在处理的代码)将发生更改,不再是您问题的未来读者的有用资源。