[Ios] प्रारंभ स्थान के रूप में वर्तमान स्थान के साथ दिशा निर्देशों के लिए आईफोन मैप्स को कैसे खोलें


Answers

NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=Current Location&saddr=%@",startAddr];
NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
[url release];

यह काम करता है लेकिन केवल जब iPhone / iPod भाषा अंग्रेजी में सेट है यदि आप अन्य भाषाओं का समर्थन करना चाहते हैं तो आपको मानचित्र बुकमार्क नाम से मिलान करने के लिए एक स्थानीय स्ट्रिंग का उपयोग करना होगा।

Question

मुझे पता है कि आईफोन मैप्स एप्लीकेशन को saddr Google मानचित्र यूआरएल पर मापदंडों के साथ यूआरएल पर स्थान स्ट्रिंग या लाट / लांग (उदाहरण नीचे देखें) के साथ saddr और saddr साथ शुरू करना संभव है।

लेकिन मैं सोच रहा हूं कि क्या प्रारंभिक पता "वर्तमान स्थान" नक्शे बुकमार्क बना सकता है ताकि मैं मैप्स ऐप के स्थान हैंडलिंग कोड का उपयोग कर सकूं । मेरी Google खोज सुंदर बेकार है

उदाहरण के लिए:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"http://maps.google.com/maps?saddr=%@&daddr=%@", myLatLong, latlong]]];

मेरे myLatLong स्थान पर मौजूदा स्थान बुकमार्क को खोलने के लिए कुछ के अलावा।




आप एक पूर्वप्रोसेसर #define का उपयोग कर सकते हैं जैसे:

#define SYSTEM_VERSION_LESS_THAN(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

अपने आईओएस संस्करण को समझने के लिए फिर, मैं आईओएस 6 का समर्थन करने के लिए इस कोड का उपयोग कर सकता हूं:

NSString* addr = nil;
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
   addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", view.annotation.coordinate.latitude,view.annotation.coordinate.longitude];
} else {
   addr = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", view.annotation.coordinate.latitude,view.annotation.coordinate.longitude];
}

NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];



आप इसे अपने मोबाइल डिवाइस पर सिर्फ यूआरएल से ही html में कर सकते हैं। यहाँ एक उदाहरण है अच्छी बात यह है कि यदि आप इसे किसी क्यूआर कोड में बदल देते हैं, तो आपके पास कोई भी तरीका है जहां से वे अपने फोन पर स्कैन करके बस आप से निर्देश प्राप्त कर रहे हैं।




IOS6 मानचित्र ऐप के लिए, आप केवल http://maps.google.com/maps?saddr=%f,%f&daddr=%@ ऊपर स्थित एक ही URL का उपयोग कर सकते हैं

लेकिन Google नक्शे URL के बजाय, आप यूआरएल को maps:// साथ प्रयोग करते हैं maps:// जिसके परिणामस्वरूप निम्नलिखित यूआरएल: maps://saddr=%f,%f&daddr=%@.

'वर्तमान स्थान' का उपयोग करना काम नहीं करता, इसलिए मैं निर्देशांक के साथ रहा।

एंटएयर अच्छी बात: यह पिछला संगत है: IOS5 पर, यह Google मैप्स एप लॉन्च करता है




यदि आप स्रोत स्थान प्रदान नहीं करते हैं, तो यह वर्तमान स्थान को स्रोत के रूप में लेगा। नीचे कोड का प्रयास करें-

urlString = " http://maps.apple.com/maps?daddr=( दीप्ति स्थान.लिटिडेट), (दीस्टेशन स्थान। लांगलिटी )&dirflg=d"} दें

UIApplication.shared.openURL (URL (स्ट्रिंग: urlString)!)




आईओएस 6 के लिए एप्पल डॉक्स समतुल्य maps.apple.com यूआरएल योजना का उपयोग करने की सलाह देते हैं

तो उपयोग करें

http://maps.apple.com/maps?saddr=%f,%f&daddr=%f,%f

के बजाय

http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f

पीछे की ओर संगत होने के लिए कोड होगा

    NSString* versionNum = [[UIDevice currentDevice] systemVersion];
    NSString *nativeMapScheme = @"maps.apple.com";
    if ([versionNum compare:@"6.0" options:NSNumericSearch] == NSOrderedAscending)
        nativeMapScheme = @"maps.google.com";
    }
    NSString* url = [NSString stringWithFormat: @"http://%@/maps?saddr=%f,%f&daddr=%f,%f", nativeMapScheme
             startCoordinate.latitude, startCoordinate.longitude,
             endCoordinate.latitude, endCoordinate.longitude];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

एप्पल मैप्स यूआरएल स्कीम के लिए अन्य समर्थित मापदंडों का पूरा भार है: एपल यूआरएल स्कीम संदर्भ

यदि आप अपने कोड के अन्य भागों में सशर्त कोड रखते हैं तो आप इन iOS संस्करण का पता लगाने मैक्रोज़ का उपयोग कर सकते हैं। आईओएस संस्करण मैक्रोज़




मैं CMMapLauncher , एक मिनी-लायब्रेरी से बाहर की जाँच करने की सलाह देता हूं जो कि मैंने एक विशिष्ट मैपिंग अनुरोध के साथ एप्पल, Google, और अन्य आईओएस मानचित्रण एप्लिकेशन लॉन्च करने के लिए बनाया था। CMMapLauncher के साथ, आपके प्रश्न में निर्देश प्राप्त करने के लिए कोड होगा:

[CMMapLauncher launchMapApp:CMMapAppAppleMaps
          forDirectionsFrom:[CMMapPoint mapPointWithName:@"Origin"
                                              coordinate:myLatLong]
                         to:[CMMapPoint mapPointWithName:@"Destination"
                                              coordinate:latlong]];

जैसा कि आप देख सकते हैं, यह भी आईओएस 6 और दूसरों के बीच की आवृत्ति की जाँच करता है।




मेरा सुझाव OpenInGoogleMaps-iOS का उपयोग कर रहा होगा क्योंकि यह एक अप टू डेट पसंद है (नवंबर 2015 तक), यह कोको फली स्थापना का समर्थन करता है और आप कुछ क्लिकों में जाने के लिए तैयार हैं I

का उपयोग करके स्थापित करें: pod "OpenInGoogleMaps"

हेडर फाइल में उपयोग की आवश्यकता है: #import "OpenInGoogleMapsController.h"

नमूना कोड नीचे:

/*In case the user does NOT have google maps, then apple maps shall open*/
[OpenInGoogleMapsController sharedInstance].fallbackStrategy = kGoogleMapsFallbackAppleMaps;    

/*Set the coordinates*/
GoogleMapDefinition *definition = [[GoogleMapDefinition alloc] init];   
CLLocationCoordinate2D metsovoMuseumCoords;     //coordinates struct
metsovoMuseumCoords.latitude = 39.770598;
metsovoMuseumCoords.longitude = 21.183215;
definition.zoomLevel = 20;
definition.center = metsovoMuseumCoords;        //this will be the center of the map

/*and here we open the map*/
[[OpenInGoogleMapsController sharedInstance] openMap:definition];