Google使用默认地图类型映射倾斜视图

时间:2014-06-17 13:06:49

标签: javascript google-maps google-maps-api-3

我正在寻找Google Maps API来访问我可以在Google地图移动应用中的导航模式中找到的鸟瞰图。 (像左上角那样:http://www.igyaan.in/33685/google-maps-for-iphone-released-on-itunes/

我发现有"倾斜"用于在SATELLITE或HYBRID地图类型中显示45度视图的选项。 https://developers.google.com/maps/documentation/javascript/maptypes?hl=en#45DegreeImagery

但是有没有办法在默认的ROAD地图类型中执行此操作?像我上面提到的导航一样?只要有默认地图,希望世界上任何地方都可以。

或者可以通过使用google maps api以任何其他方式完成吗?

由于

2 个答案:

答案 0 :(得分:3)

正如您所说,并且在关于tilt的文档中也提到过:

  

控制入射角的自动切换行为   的地图。唯一允许的值为0和45.值0导致   无论缩放级别如何,地图始终使用0°俯视视图   和视口。值45使倾斜角度自动变化   每当45°影像可用于当前变焦时,请切换到45   级别和视口,并且每当45°图像不是时切换回0   可用(这是默认行为)。仅45°图像   在某些地方可用于SATELLITE和HYBRID地图类型,   并在一些缩放级别。注意:getTilt返回当前的倾斜度   angle,而不是此选项指定的值。因为getTilt和   这个选项指的是不同的东西,不要绑定()倾斜   属性;这样做可能会产生不可预测的影响。

参考:https://developers.google.com/maps/documentation/javascript/reference?csw=1#MapTypeControlOptions

因此,使用roadmap类型无法实现。最接近的是将css transforms应用于div并查看是否可以使用它。

CSS:

#map_canvas {
     height: 500px;
     width: 500px;
     -webkit-transform: perspective(1000px) rotate3d(40, 1, 0, 40deg)!important;
     -moz-transform: perspective(1000px) rotate3d(40, 1, 0, 40deg)!important;
     -o-transform: perspective(1000px) rotate3d(40, 1, 0, 40deg)!important;
     transform: perspective(1000px) rotate3d(40, 1, 0, 40deg)!important;
 }
 .container {
     width:500px;
     height:500px;
 }

JS:

var map;
function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(45.518970, -122.672899),
        zoom: 18,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        disableDefaultUI: true
    };
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
}
google.maps.event.addDomListener(window, 'load', initialize);

演示:http://jsfiddle.net/lotusgodkk/x8dSP/3536/

这不是您需要的解决方案,而是更接近于此。

答案 1 :(得分:0)

很棒的答案!一个改进,我改变CSS使用rotateX。因为否则顶行不是直的(使用rotate3d)。

#map_canvas {
-webkit-transform: perspective(1500px) rotateX( 45deg )
    !important;
-moz-transform: perspective(1500px) rotateX( 45deg ) !important;
-o-transform: perspective(1500px) rotateX( 45deg ) !important;
transform: perspective(1500px) rotateX( 45deg ) !important;

}