0

Rubymotionを使用してiOSアプリを構築しています。このアプリでは、マップビューを取得しました。これはうまく表示できますが、完全にズームアウトしたビューではなく、注釈領域に初期ズームレベルを設定したいと思います。これどうやってするの?

これは私のコードです:

map = MKMapView.alloc.initWithFrame(CGRectMake(10, 10, (hash[:width]-20), (hash[:height]-20)))
    map.mapType = MKMapTypeStandard
    map.delegate = self
    map.showsUserLocation = true
    map.setCenterCoordinate(location, animated:true)
    map.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
4

2 に答える 2

3

構造体longitudeDeltalatitudeDeltaフィールドを使用できます。MKCoordinateSpan

MKCoordinateSpan span; span.latitudeDelta = .001;
span.longitudeDelta = .001;
//the .001 here represents the actual height and width delta
MKCoordinateRegion region;
region.center = newLocation.coordinate; region.span = span;
[mapView setRegion:region animated:TRUE];

もちろん、たとえばデフォルトのズームレベルとしてスパンを保存することもできます。

ドキュメントの内容は次のとおりです。

"*マップに表示される領域は、MKCoordinateRegion型の構造体であるregionプロパティによって定義されます。MKCoordinateRegion構造体には、centerというメンバー(CLLocationCoordinate2D型)とspanという別のメンバー(MKCoordinateSpan型)が含まれます。MKCoordinateSpan構造体次に、2つのメンバーが含まれます:latitudeDeltaとlongitudeDelta(どちらもCLLocationDegreesタイプで、doubleです)両方のメンバーは、マップに表示する距離の量を定義します

➤latitudeDelta —1度の緯度は約111キロメートル(69マイル)です。

➤longitudeDelta—経度の1度は、赤道では約111 km(69マイル)の距離に及びますが、極では0kmに縮小します。マップをズームインおよびズームアウトするときに、これら2つの構造の値を調べます。これらはマップのズームレベルを表しています。「」

于 2012-12-07T15:30:45.167 に答える
2

ユーザーの位置を基準にしてズームする場合は、次のことを試してください。

MKUserLocation *userLocation = map.userLocation;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (userLocation.location.coordinate, 50, 50);
[map setRegion:region animated:NO];
于 2012-12-07T14:54:24.660 に答える