我正在寻找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以任何其他方式完成吗?
由于
答案 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;
}