【发布时间】:2018-08-20 04:29:40
【问题描述】:
这是我当前的代码:
$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
}));
*/
})
}
我尝试使用底部注释的内容(建议使用 SO)。我将其调整为仅使用“缩放”,但它会使我的地图变白。
Google 地图请求包含几何点位置(纬度/经度),还包含边界框,它应该确定缩放级别。如何使用此边界框正确更新我的地图?
如果您需要查看更多代码,这里是我正在使用的complete script。
【问题讨论】:
-
请提供一个证明问题的minimal reproducible example(可能不需要实际调用
.googleAPI,只需返回数据)。 -
这是我的complete code。我认为除了我提供的东西之外,不需要任何东西。您是否介意指出此代码中缺少的内容,以便我可以从错误中吸取教训?无论如何,我找到了解决方案并发布了它。不过,我只能接受它作为明天的答案。
-
很高兴您解决了问题。请在问题本身中提供minimal reproducible example,而不是(仅)提供指向外部网站的链接。
-
这是我正在处理的实际代码的链接,上次我复制粘贴了这么多代码时,我还被警告说我不应该放那么多信息。可能看起来晦涩难懂的变量(例如
view和map)对我来说同样晦涩难懂,因为这是分配给我的其他人的代码。 -
您的完整代码不是(必然)minimal reproducible example。外部网站(您正在处理的代码)将发生变化,并且不再是您问题未来读者的有用资源。
标签: javascript angularjs google-maps openlayers