如何在MKMap上设置位置

时间:2012-02-10 15:39:02

标签: objective-c mkmapview

我有4个rect坐标。 喜欢

north="55.9504356" south="55.5485293" east="38.1289043" west="37.1044291"

我如何在这个矩形中设置地图位置?

2 个答案:

答案 0 :(得分:1)

你应该转换你的坐标。尝试以某种方式获得rect的中心。这是我的代码示例:

 CLLocationCoordinate2D coordinate = {[neighborhood.Latitude doubleValue], [neighborhood.Longitude doubleValue]};
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coordinate, 15000, 15000);
[self.mapView setRegion:region animated:NO];

你可以看到你指出了一个矩形的中心和距离中心的距离,以米为单位。

答案 1 :(得分:1)

google goecoding给了我viewport <LatLonBox north="55.9504356" south="55.5485293" east="38.1289043" west="37.1044291"/>和俄罗斯莫斯科地区的中心。

   CLLocationCoordinate2D centerOfRegion = CLLocationCoordinate2DMake([data.coordinatesLongitude doubleValue],[data.coordinatesLatitude doubleValue]);     //37.6166667,55.7500000

    //N+E S+W for get distance between
    double lat1 = [[data.squareArray objectAtIndex:0] doubleValue];
    double lng1 = [[data.squareArray objectAtIndex:2] doubleValue];

    double lat2 = [[data.squareArray objectAtIndex:1] doubleValue];
    double lng2 = [[data.squareArray objectAtIndex:3] doubleValue];

    CLLocation *firstLocation = [[[CLLocation alloc] initWithLatitude:lat1 longitude:lng1] autorelease];
    CLLocation *secondLocation = [[[CLLocation alloc] initWithLatitude:lat2 longitude:lng2] autorelease];
    //   and /2 to make a little smaller viewport
    CLLocationDistance distance = [secondLocation distanceFromLocation:firstLocation];

    [map setRegion:MKCoordinateRegionMakeWithDistance(centerOfRegion, distance/2, distance/2)];

所以一个中心区域和规范的区域大小。

我的解决方案是这样,希望可以帮助其他人。