2

この質問は、以下の質問と同様の行にあります。しかし、その質問は要件に答えていないため、この質問をしています。

iOSの辺の長さを使用した不規則な多角形の面積

アプリの概要

1 - ユーザーが iPhone/iPad を持って車で移動し、座標をプロットすることになっています。

2 - 彼が乗車を終えた後、彼のすべての座標をカバーするポリゴンを描画することを想定しています

3 - ポリゴンがカバーする面積を計算します。

マップ API を参照しましたが、面積を計算するメソッドが見つかりませんでした。

iOSマップでポリゴンの面積を計算するのに役立つサードパーティのライブラリ/メカニズムはありますか..

4

2 に答える 2

1

Google Maps v3 API documentationから、ジオメトリ関数はデフォルトではロードされないライブラリの一部です:

このドキュメント内の概念は、google.maps.geometry ライブラリ内でのみ使用可能な機能を参照しています。このライブラリは、Maps Javascript API を読み込むときにデフォルトでは読み込まれませんが、ライブラリ ブートストラップ パラメータを使用して明示的に指定する必要があります。

ページ内でジオメトリ関数を読み込んで使用するには、ジオメトリ ライブラリを使用することを Google に通知する必要があります。これには、libraries=geometry を含めて最初の Google API 呼び出しに追加します。

これにより、ジオメトリ ライブラリが読み込まれ、z 変数にオブジェクトが含まれます。

動作するコードを含むテスト ページ:

<!DOCTYPE html>
<html>
<head>
    <style type="text/css">
      html, body, #map_canvas {
        margin: 0;
        padding: 0;
        height: 100%;
      }
    </style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script type="text/javascript">
    var map;
    function initialize()
    {
        var myOptions = {
          zoom: 8,
          center: new google.maps.LatLng(-34.397, 150.644),
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
    }

    google.maps.event.addDomListener(window, 'load', initialize);
    </script>
<script>
function test()
{
var arr = new Array()
arr.push('51.5001524,-0.1262362');
arr.push('52.5001524,-1.1262362');
arr.push('53.5001524,-2.1262362');
arr.push('54.5001524,-3.1262362');
dibuV(arr);
}
function dibuV(area)
{
var a = new Array();

for(var i=0; i<area.length; i++)
{
    var uno = area[i].split(",");
    a[i] = new google.maps.LatLng(uno[0],uno[1]);
}

poligon = new google.maps.Polygon({
    paths: a,
    strokeColor: "#22B14C",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#22B14C",   
    fillOpacity: 0.35   
})  

poligon.setMap(map);//until here is ok 
var z = google.maps.geometry.spherical.computeArea(myPolyline.getPath().getArray());
alert(z);
}
</script>
</head>
<body onload="test();">
    <div id="map_canvas"></div>
</body>
</html>
于 2013-11-12T07:27:06.780 に答える
0

これは、独自のソリューションを実装するのに役立つ場合があります:多角形の面積 (座標ジオメトリ)

于 2013-11-12T07:32:30.807 に答える