Brad của câu trả lời
google.maps.geometry.spherical.computeArea(yourPolygon.getPath());
là chính xác, nhưng hãy cẩn thận, nó chỉ áp dụng cho các đa giác không tự giao nhau. Khi đa giác bắt đầu tự giao nhau, mọi thứ sẽ sai lầm khủng khiếp. Bạn có thể thử nó với liên kết Brad đã cho http://geojason.info/demos/line-length-polygon-area-google-maps-v3/. Chỉ cần vẽ 4-5 đường giao nhau và bắt đầu chơi với các đỉnh. Tính toán diện tích chắc chắn sẽ sai.
Nếu bạn không thuyết phục, đây là một ví dụ:
var map;
google.maps.visualRefresh = true;
google.maps.event.addDomListener(window, 'load', initialize);
function initialize() {
var mapOptions = {
center : new google.maps.LatLng(55.874, -4.287),
zoom : 16,
mapTypeId : google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions)
drawExample();
}
function drawExample() {
var pathLeft = [new google.maps.LatLng(55.874, -4.292),
new google.maps.LatLng(55.875, -4.292),
new google.maps.LatLng(55.875, -4.290),
new google.maps.LatLng(55.876, -4.290),
new google.maps.LatLng(55.876, -4.291),
new google.maps.LatLng(55.874, -4.291)]
var polygonLeft = new google.maps.Polygon({
path : pathLeft,
map: map
});
var areaLeft = google.maps.geometry.spherical.computeArea(polygonLeft.getPath());
var pathRight = [new google.maps.LatLng(55.874, -4.282),
new google.maps.LatLng(55.875, -4.282),
new google.maps.LatLng(55.875, -4.280),
new google.maps.LatLng(55.8753, -4.2807),
new google.maps.LatLng(55.876, -4.281),
new google.maps.LatLng(55.874, -4.281)]
var polygonRight = new google.maps.Polygon({
path : pathRight,
map: map
});
var areaRight = google.maps.geometry.spherical.computeArea(polygonRight.getPath());
console.log("areaLeft: " + areaLeft + "\nareaRight: " + areaRight);
}
Báo cáo lỗi http://code.google.com/p/gmaps-api-issues/issues/detail?id=5624&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Stars%20ApiType%20Internal&start=700#makechanges
sẽ API này đưa vào tài khoản độ cao của đất ?. Tôi sẽ nhận được tọa độ từ thiết bị GPS. –
Không, nó giả định một quả cầu hình cầu hoàn toàn trơn tru. Âm thanh như những gì bạn thực sự muốn là diện tích bề mặt của mô hình độ cao kỹ thuật số. Điều này có thể được tính bằng hàm r.surf.area trong GRASS GIS, nhưng nếu bạn muốn biết nhiều hơn, bạn nên hỏi gis.stackexchange.com – Spacedman
@Spacedman: Grass GIS có thể tích hợp với Google Maps không? –