2016-09-05 2 views
0

Ich bin ein Anfänger und habe ein kleines Projekt nur um zu erfahren, mapview erstellt, in dem ich vier Schaltfläche einrichten rechts unten links und ein Flugzeug Bild in der Mitte gesetzt wie dieseMapView Änderungen Region automatisch

enter image description here

Wenn wir auf die Schaltfläche "up" klicken, wird die Breite um 10 Koordinaten wie 47-> 57-> 67 bis 77 in down wie -> - 43 -> - 53 -> - 63 bis -73 und gleich für links und rechts I erhöht Ich möchte nur wissen, warum es die Region ändert und herauszoomen, wenn ich nach oben gehe (wenn ich die Breite vergrößere) und heranzoomen (wenn ich die Breite verkleinere) und wie ich es beheben kann, außer dass alles gut funktioniert.

Ich werde Code setzen für eine Taste können sagen UP für Ihr besseres Verständnis: -

1.in viewDidLoad

lattitude=27; 

2.in mein viewController.m

- (IBAction)up:(id)sender { 
    if (lattitude<=70) { 

    _targetOutlet.image=[UIImage imageNamed:@"up"]; 
    [UIView animateWithDuration:5 animations:^{ 
    lattitude=lattitude+10; 

    centre=CLLocationCoordinate2DMake(lattitude, longitude); 
    map.userLocation.coordinate=centre; 
     region=[map regionThatFits:MKCoordinateRegionMakeWithDistance(centre, zoomScale ,zoomScale)]; 

      [map setRegion:[map regionThatFits:region] animated:YES]; 
    }]; 

    } 


     NSLog(@"UP = Lattitude = %f longitude= %f",lattitude,longitude); 

} 

Hinweis: Die Region ist im gesamten Projekt festgelegt.

+0

Sie bitte mehr erarbeiten, wenn es ändernde Bereich und zoomen? – vaibhav

+0

es ist schwer zu erklären, aber es ist wie wenn wir auf die Schaltfläche "up" klicken die Karte auszoomen und wenn wir auf die Schaltfläche "down" klicken, wird die mapView in ihre Region ändern .. @vaibhav – dreamBegin

+0

what the 'zoomScale' hier? – vaibhav

Antwort

1

wahrscheinlich das Problem ist in Ihnen MKCoordinateRegionMakeWithDistance Verfahren, bei dem jedes Mal, wenn die latitudinalMeterslongitudinalMeters Parameter dieser Methode setzen.

MKCoordinateRegion MKCoordinateRegionMakeWithDistance (CLLocationCoordinate2D centerCoordinate, CLLocationDistance latitudinalMeters, CLLocationDistance longitudinalMeters); 

Sie können versuchen, diese:

region=[map regionThatFits:MKCoordinateRegionMakeWithDistance(centre, 200 ,200)]; 

oder apple doc für weitere Informationen siehe :)

+0

ich glaube nicht, dass dies hilft mir versuchen lassen :) – dreamBegin

+0

nein es funktioniert nicht die gleiche Sache passiert die ganze Zeit. – dreamBegin

+0

und das Problem ist, wenn Sie die Antwort finden wollen, können Sie es nicht haben, ohne es zu implementieren. – dreamBegin