我正在尝试使用一对纬度和经度坐标指定的地图边框请求Google Static Maps API中的图像。我已经尝试以两个坐标的中心为中心,但似乎没有任何参数可以使用Static API执行此操作。有谁知道怎么做?
注意:这适用于桌面应用程序,我使用Javascript API 。
答案 0 :(得分:1)
问题在于你不能将请求基于地图的角落,因为1. 缩放级别是离散值和2. 像素所代表的纬度数量随纬度而变化。因此,要显示2度,你需要在赤道附近给定一个给定的地图高度,在极点附近需要不同的高度(更大)。您是否愿意显示不同高度的地图,以便始终适合2度?
如果是这样,您可以使用my other post中的MercatorProjection对象,并使用以下函数计算必要的地图大小:
<script src="MercatorProjection.js"></script>
function getMapSize(center,zoom){
var proj = new MercatorProjection();
var scale = Math.pow(2,zoom);
var centerPx = proj.fromLatLngToPoint(center);
var SW = new google.maps.LatLng(center.lat()-1,center.lng()-1);
var southzWestPx = proj.fromLatLngToPoint(SW);
var NE = new google.maps.LatLng(center.lat()+1,center.lng()+1);
var northEastPx = proj.fromLatLngToPoint(NE);
// Then you can calculate the necessary width and height of the map:
var mapWidth = Math.round((northEastPx.x - southzWestPx.x) * scale);
var mapHeight = Math.round((southzWestPx.y - northEastPx.y) * scale);
}
使用center = new google.maps.LatLng(49.141404,-121.960988)并缩放= 7,您需要一张(W x H)182 x 278像素的地图才能显示2 x 2度。