[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];

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

Question

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

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

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

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

myLatLong स्थान पर वर्तमान स्थान बुकमार्क को आमंत्रित करने के लिए कुछ के अलावा।




आईओएस 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]];

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

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




आईओएस 6 मैप्स ऐप के लिए, आप बस ऊपर दिए गए यूआरएल का उपयोग कर सकते हैं http://maps.google.com/maps?saddr=%f,%f&daddr=%@

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

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

Antother अच्छी बात: यह पीछे की ओर संगत है: आईओएस 5 पर, यह Google मानचित्र ऐप लॉन्च करता है।




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

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

जैसा कि आप देख सकते हैं, यह आईओएस 6 और अन्य के बीच आवश्यक संस्करण जांच को भी समाहित करता है।




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

उपयोग करके स्थापित करें: 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];       



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




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

urlString = " http://maps.apple.com/maps?daddr=(destinationLocation.latitude),(destinationLocation.longitude)&dirflg=d ) ,(destinationLocation.longitude)&dirflg=d"}

UIApplication.shared.openURL (यूआरएल (स्ट्रिंग: urlString)!)




आप प्रीप्रोसेसर # डिफाईन का उपयोग कर सकते हैं:

#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];





Related