google-maps - 如何计算以像素为单位在 map 上绘制的多边形的面积?

标签 google-maps google-maps-api-3

我有一个面积大约为 10 000 m2 的多边形
我试图确定多边形在哪个缩放级别上变得几乎不可见,这意味着 - 绘制多边形所需的像素数可以忽略不计,并将其从 map 中删除以节省资源。
由于我已经有了一个真实的多边形面积值,我该如何计算 map 上绘制的多边形的面积(以像素为单位)用于特定的缩放级别?

最佳答案

为了简化问题,我建议使用多边形的边界而不是多边形本身。这样你总是处理一个矩形并避免计算不规则多边形大小的麻烦。 考虑到这一点,并假设您的多边形很简单并且只有一条路径,您可以这样做:

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());

关于google-maps - 如何计算以像素为单位在 map 上绘制的多边形的面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11307027/

相关文章:

android - JSON 的问题

google-maps-api-3 - map 缩放控件无法正确显示

google-maps - 如何增加谷歌地图中图标的可点击区域

android - 谷歌地图从异步任务加载多个标记

ios - 如何通过纬度和经度值更新谷歌地图上的标记位置

javascript - 使用 Google Maps API Javascript 取消对标记的限制

java - 是否可以将 MapView 作为另一个 Activity 的元素包含在内?

web-services - Google Maps API V3 地理编码 API 不返回状态

google-maps-api-3 - 更改 Google map V3 中的标记大小

javascript - 谷歌地图 - 标记不会移动,直到我手动移动一次