Nasıl Başlangıç Adresi olarak Yön için iPhone Haritalar çağırmak için Güncel Konum ile
Biliyorum mümkün başlatmak için iPhone maps uygulaması çağırarak openURL
Bir google maps URL parametreleri saddr
daddr
konum dizeleri veya Enlem/Uzun (aşağıdaki örneğe bakın).
Ama mümkünse başlangıç adresi diye merak ediyorum"Geçerli Konum"haritalar kullanabileceğim çok yer imiHaritalarapp konumu işleme kodu. Google Arama oldukça başarısız olmuştur.
Örneğin:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:
[NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@",
myLatLong,
latlong]]];
Geçerli konum yer imi çağırmak için bir şey hariç myLatLong
yerine.
CEVAP
Önceden iOS 6
Temel Konum geçerli konum almak için kullanmanız gerekir, ama/uzun lat çift, Haritalar, sokak adresi veya yer için oradan, size rota alabilirsiniz. Bunun gibi
CLLocationCoordinate2D currentLocation = [self getCurrentLocation];
// this uses an address for the destination. can use lat/long, too with %f,%f format
NSString* address = @"123 Main St., New York, NY, 10001";
NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%f,%f&daddr=%@",
currentLocation.latitude, currentLocation.longitude,
[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
CoreLocation açıkça geçerli konumu bulmak için kullanarak önlemek istiyorum, ve @"http://maps.google.com/maps?saddr=Current Location&daddr=%@"
url yerine kullanmak istiyorsanız son olarak, sonra yerleştirmek için nasıl see this link that I provided in comments belowGeçerli Konumstring. Ancak, başka bir belgelenmemiş bir özelliği yararlanarak, ve Jason McCreary aşağıda belirttiği gibi, güvenilir bir gelecek sürümlerde çalışmayabilir.
İOS 6 için güncelleme
AslındaHaritalarGoogle maps, ama şimdi kullanılan, Apple ve Google maps ayrı uygulamalar var.
1)Eğer rotayı Google Haritalar uygulamasını kullanarak yapmak istiyorsanız, the comgooglemaps URL scheme kullanın:
NSString* url = [NSString stringWithFormat: @"comgooglemaps://?daddr=%@&directionsmode=driving",
[address stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
BOOL opened = [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
2)Apple Maps kullanarak, iOS 6 MKMapItem
yeni sınıfını kullanabilirsiniz. See the Apple API docs here
Temelde, eğer bir hedefe yönlendirme eğer böyle bir şey kullanınkoordinatları(latlong
):
MKPlacemark* place = [[MKPlacemark alloc] initWithCoordinate: latlong addressDictionary: nil];
MKMapItem* destination = [[MKMapItem alloc] initWithPlacemark: place];
destination.name = @"Name Here!";
NSArray* items = [[NSArray alloc] initWithObjects: destination, nil];
NSDictionary* options = [[NSDictionary alloc] initWithObjectsAndKeys:
MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsDirectionsModeKey, nil];
[MKMapItem openMapsWithItems: items launchOptions: options];
Aynı kod ve önceden iOS 6 hem de iOS 6 desteği için, Apple MKMapItem
API doc sayfasında bu kod gibi bir şey kullanarak öneririm:
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
// iOS 6 MKMapItem available
} else {
// use pre iOS 6 technique
}
Bu böyle büyük mükafat Base SDK iOS 6 olduğunu (yaEn son iOS).
güncel milisaniye almak için Nasıl?iPh...
iPhone/iPad/): Nasıl benim IP adresi P...
Nasıl iPhone SDK üzerinde etkin bir İn...
Nasıl iPhone için Windows geliştirme m...
Nasıl bir dizin özyinelemeli olarak tü...