Get*_*ame 2 google-maps google-maps-api-3
我有一个面积大约为10 000 m2
的多边形我试图确定多边形变得几乎不可见的缩放级别,意味着 - 绘制多边形所需的像素数可以忽略不计,并将其从地图中删除以保存资源.
由于我已经有一个真正的多边形区域值,如何计算在地图上绘制的多边形的面积(以像素为单位),以获得特定的缩放级别?
为了简化问题,我建议使用多边形的边界而不是多边形本身.这样你总是处理一个矩形,避免计算不规则多边形大小的麻烦.考虑到这一点,并假设您的多边形很简单,只有一个路径,您可以这样做:
var points = poly.getPath();
var bounds = new google.maps.LatLngBounds();
for (var n = 0; n < points.length ;n++){
bounds.extend(points[n]);
}
var SW = bounds.getSouthWest();
var NE = bounds.getNorthEast();
var proj = map.getProjection();
var swPx = proj.fromLatLngToPoint(SW);
var nePx = proj.fromLatLngToPoint(NE);
var pixelWidth = (nePx.x - swPx.x)* Math.pow(2, map.getZoom());
var pixelHeight = (nePx.y - swPx.y)* Math.pow(2, map.getZoom());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1871 次 |
最近记录: |