1

私はiOSが初めてです。現在、マップビューでポリゴンの面積を計算する作業を行っています。不規則な多角形の辺の長さしかありませんが、多角形の面積を測定する方法を教えてもらえますか? 角度や座標ではなく、すべての辺の長さだけを覚えておいてください。

ポリゴンの三角測量などについて言及しているフォーラムはほとんどありませんが、辺の長さしかありません。

フィードバックはありますか?

ありがとう。

4

3 に答える 3

0

次の方法で変換できればCLLocationCoordinate2DCGPointすべての点の座標を取得できます。

//CGPoint myPoint = CGPointMake(coordinate.longitude, coordinate.latitude);

CGPoint Point = [self.mapView convertCoordinate:self.mapCoordinate toPointToView:self.mapView]; 

次に、リンクに従って方法を試すことができます

http://www.wikihow.com/Sample/Area-of-an-Irregular-Polygon

CLLocationCoordinate2D overflowLotCoords[15]={
    CLLocationCoordinate2DMake(39.04864351611461,-76.8513227245313),
    CLLocationCoordinate2DMake(39.04851710015167,-76.8517540587399),
    CLLocationCoordinate2DMake(39.04868674731313,-76.85192728689483),
    CLLocationCoordinate2DMake(39.04850095882104,-76.85230365946416),
    CLLocationCoordinate2DMake(39.04819087100218,-76.85265260435219),
    CLLocationCoordinate2DMake(39.0477370134458,-76.85286078490296),
    CLLocationCoordinate2DMake(39.04692851484644,-76.85283202926037),
    CLLocationCoordinate2DMake(39.04695987529381,-76.85235192135768),
    CLLocationCoordinate2DMake(39.04734847050665,-76.85236298239703),
    CLLocationCoordinate2DMake(39.04779491740192,-76.85232236959109),
    CLLocationCoordinate2DMake(39.04814366462639,-76.85208905182692),
    CLLocationCoordinate2DMake(39.04838024069194,-76.85164072166863),
    CLLocationCoordinate2DMake(39.04843331131504,-76.85085998781742),
    CLLocationCoordinate2DMake(39.04857547181026,-76.8507923535788),
    CLLocationCoordinate2DMake(39.04864351611461,-76.8513227245313)
};

NSMutableArray *marrPointsList = [NSMutableArray array];

for (int i = 0; i < 15; i++)
{
    CLLocationCoordinate2D coordinate = overflowLotCoords[i];

    CGPoint point = [self.myMapView convertCoordinate:overflowLotCoords[i] toPointToView:self.myMapView];

    NSLog(@"convert %@", NSStringFromCGPoint(point));

    [marrPointsList addObject:[NSValue valueWithCGPoint:point]];        
}

このコード スニペットがお役に立てば幸いです。

于 2013-08-19T13:54:51.873 に答える