Google マップにポリゴン ツールとシェイプ ツールがあります。ユーザーが両方のツールを使用して形状の面積を計算できるようにしたいと考えています。問題は、同じサイズ (または非常に近い) の形状の領域の値が大きく異なることです。たとえば、多角形の面積の結果は 552523.74 になり、長方形の面積の結果は 27.57 になります。
これまでの私のコードは次のとおりです 。
google.maps.event.addListener(newShape, 'bounds_changed', function() {
var area= rectArea(newShape.getBounds());
}
function rectArea(bounds){
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var southWest=new google.maps.LatLng(sw.lat(), sw.lng());
var northEast=new google.maps.LatLng(ne.lat(), ne.lng());
var southEast = new google.maps.LatLng(sw.lat(),ne.lng());
var northWest = new google.maps.LatLng(ne.lat(),sw.lng());
console.log('rec coords: '+ northEast +',' + northWest +',' + southEast +',' + southWest);
area=google.maps.geometry.spherical.computeArea([northEast,northWest,southEast,southWest]);
return area;
}
ポリゴン
google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
var coordinates = (polygon.getPath().getArray());
area=google.maps.geometry.spherical.computeArea(coordinates);
console.log('poly coords: '+ coordinates);
console.log('Polygon '+ this.id +' Area is: ' + area);
});