Mám aplikáciu, ktorá používateľovi poskytuje zväčšiteľný MKMapView. Chcem mať možnosť uložiť preferované súradnice používateľa a úroveň priblíženia pri prvom zobrazení mapy.
V súčasnosti v viewDidLoad poskytujem predvolenú sadu súradníc a úroveň priblíženia pre úvodnú prezentáciu mapy:
zoomLocation.latitude = 55.50;
zoomLocation.longitude = -5.50;
// specify size of region to display
MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation, 340.0*METERS_PER_MILE, 340.0*METERS_PER_MILE);
// auto adjust region to fit screen
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion];
// display the new region
[mapView setRegion:adjustedRegion animated:YES];
To, čo sa snažím urobiť, je, keď používateľ rolujea priblíži mapu na svoje preferované predvolené zobrazenie, môžu stlačiť tlačidlo „Nastaviť predvolené“ a kedykoľvek pri načítaní zobrazenia uložiť požadované vlastnosti na implementáciu v budúcnosti.
Na uloženie súradníc zvoleného pohľadu používateľa mám toto:
// gets coordinates of currently viewed map image
CGPoint pointCentrePoint = CGPointMake(mapView.frame.size.width/2, mapView.frame.size.height/2);
centrePoint = [mapView convertPoint:pointCentrePoint toCoordinateFromView:mapView];
NSLog(@"LAT: %f LON: %f", centrePoint.latitude, centrePoint.longitude);
S čím bojujem je to, ako skladovaťpoužívateľom vybratá oblasť MKCoordinateRegion alebo úroveň priblíženia. Existuje spôsob, ako môžem získať prístup k tejto vlastnosti pre aktuálne zobrazenie, aby bolo možné ho v budúcnosti pri načítaní pohľadu znova použiť?
odpovede:
2 pre odpoveď č. 1Na rozdiel od JavaScriptu Google Maps API nemá MKMapView ľahko dostupnú vlastnosť „úrovne zväčšenia“ (nie je to skutočne potrebné pre váš účel).
Pracujte s hodnotami stredu a rozsahu v majetku regiónu.
Táto otázka uvádza príklad toho, ako uložiť / načítať región do NSUserDefaults.