iOS 9 이상을 실행하는 기기에서는 Google 지도 URL이 있는 경우 범용 링크를 사용하여 Google 지도를 실행할 수 있습니다.
Google 지도 URL 스키마를 사용하여 iOS용 Google 지도 앱을 실행하여 검색하고, 경로 요청을 가져오고, 지도 뷰를 표시할 수 있습니다. Google 지도를 실행하면 요청의 일부로 번들 식별자가 자동으로 전송됩니다.
Google 지도 URL 스키마를 사용하는 데 Google API 키가 필요하지 않습니다.
범용 링크 및 Google 지도
iOS용 Google 지도는 iOS 9 이상을 실행하는 기기에서 범용 링크를 지원합니다.
URL이 다음 정규 표현식과 일치하고 기기에서 iOS 9 이상을 실행 중인 경우 openURL: 메서드를 직접 사용하는 것이 좋습니다.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
예를 들면 다음과 같습니다.
Swift
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
개요
URL 스키마를 사용하면 다른 iOS 앱이나 웹 애플리케이션에서 네이티브 iOS 애플리케이션을 실행할 수 있습니다. 시작된 애플리케이션에 전달할 URL의 옵션을 설정할 수 있습니다. iOS용 Google 지도 앱에서는 다음 URL 스키마를 지원합니다.
comgooglemaps://
및comgooglemaps-x-callback://
- 이 스키마를 사용하면 iOS용 Google 지도 앱을 실행하고 여러 작업 중 하나를 실행할 수 있습니다.- 특정 위치 및 확대/축소 수준에서 지도를 표시합니다.
- 위치나 장소를 검색하여 지도에 표시합니다.
- 한 위치에서 다른 위치로의 경로를 요청합니다. 경로는 4가지 이동 모드(자동차, 도보, 자전거, 대중교통)로 반환될 수 있습니다.
- 앱에 탐색을 추가합니다.
- iOS 8까지는 앱이 완료되면
comgooglemaps-x-callback://
를 사용하여 콜백을 실행합니다. 콜백은 원래 iOS용 Google 지도를 열었던 앱으로 사용자를 돌려보내는 데 자주 사용됩니다. iOS 9에서는 시스템에서 자동으로 상태 표시줄의 왼쪽 모서리에 '돌아가기' 링크를 제공합니다.
comgooglemapsurl://
- 이 스키마를 사용하면 데스크톱 Google 지도 웹사이트에서 파생된 URL을 사용하여 iOS용 Google 지도 앱을 실행할 수 있습니다. 즉, Google 지도 웹사이트만 로드하는 것이 아니라 사용자에게 고유한 모바일 환경을 제공할 수 있습니다.- 원래 URL은
maps.google.com
또는google.com/maps
이거나com
대신 유효한 최상위 국가 도메인을 사용할 수 있습니다.goo.gl/maps
리디렉션 URL을 전달할 수도 있습니다. x-source
및x-success
매개변수를comgooglemapsurl://
URL 스키마와 함께 사용하여 콜백을 실행할 수 있습니다.
- 원래 URL은
iOS용 Google 지도 앱 실행 및 특정 기능 수행
iOS용 Google 지도 앱을 실행하고 지원되는 기능 중 하나를 선택적으로 실행하려면 다음 형식의 URL 스키마를 사용합니다.
comgooglemaps://?parameters
또는:
comgooglemaps-x-callback://?parameters
매개변수는 이 문서의 뒷부분에서 자세히 설명됩니다.
기기에서 Google 지도 앱을 사용할 수 있는지 확인
앱에서 사용자에게 이러한 URL 중 하나를 제공하기 전에 먼저 애플리케이션이 설치되어 있는지 확인해야 합니다. 앱은 다음 코드로 URL 스키마를 사용할 수 있는지 확인할 수 있습니다.
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
예를 들어 뉴욕 센트럴 파크의 지도를 표시하려면 다음 코드를 사용할 수 있습니다.
Swift
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
지도 표시
URL 구성표를 사용하여 지정된 확대/축소 수준과 위치에 지도를 표시합니다. 또한 지도 위에 다른 보기를 오버레이하거나 스트리트 뷰 이미지를 표시할 수도 있습니다.
매개변수
다음 매개변수는 모두 선택 항목입니다. 매개변수가 설정되지 않은 경우 URL 스키마는 iOS용 Google 지도 앱을 실행합니다.
center
: 지도 표시 영역의 중심점입니다. 쉼표로 구분된latitude,longitude
문자열 형식으로 지정됩니다.mapmode
: 표시되는 지도의 종류를 설정합니다.standard
또는streetview
로 설정할 수 있습니다. 지정하지 않으면 현재 애플리케이션 설정이 사용됩니다.views
: 특정 뷰를 켜거나 끕니다.satellite
,traffic
또는transit
로 설정할 수 있습니다. 쉼표 구분자를 사용하여 여러 값을 설정할 수 있습니다. 매개변수에 값을 지정하지 않으면 모든 뷰가 지워집니다.zoom
: 지도의 확대/축소 수준을 지정합니다.
이 URL 예는 확대/축소 수준 14로 뉴욕에 중심을 두고 교통정보 뷰가 설정된 지도를 표시합니다.
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
몇 가지 추가 예는 다음과 같습니다.
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
검색
이 스키마를 사용하여 지정한 표시 영역 위치의 검색어를 표시할 수 있습니다.
매개변수
검색은 지도를 표시하는 데 사용되는 매개변수 외에도 q
매개변수를 지원합니다.
q
: 검색할 쿼리 문자열입니다.
다음은 지정된 위치 주변에서 '피자'를 검색하는 URL의 예입니다.
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
몇 가지 추가 예는 다음과 같습니다.
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
경로 표시
이 구성표를 사용하여 두 위치 간의 길찾기를 요청하고 표시합니다. 이동 모드를 지정할 수도 있습니다.
매개변수
saddr
: 경로 검색의 시작 지점을 설정합니다. 위도,경도 또는 쿼리 형식의 주소가 될 수 있습니다. 결과를 두 개 이상 반환하는 쿼리 문자열인 경우 첫 번째 결과가 선택됩니다. 값을 비워 두면 사용자의 현재 위치가 사용됩니다.daddr
: 경로 검색의 도착 지점을 설정합니다. 형식 및 동작이saddr
와 동일합니다.directionsmode
: 교통수단입니다.driving
,transit
,bicycling
또는walking
로 설정할 수 있습니다.
예시 URL은 Google 뉴욕시와 JFK 공항 간의 대중교통 경로를 표시합니다.
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
몇 가지 추가 예는 다음과 같습니다.
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
콜백 URL 지정
콜백 URL을 지정하려면 comgooglemaps-x-callback://
URL 스키마를 사용해야 합니다. 이 스키마는 x-콜백-url 사양을 준수합니다. 이 스키마로 iOS용 Google 지도 앱을
호출하면 화면 상단에 버튼이 표시됩니다. 이 버튼을 탭하면 지정한 URL로 콜백이 실행됩니다.
comgooglemaps-x-callback://
에 대한 요청은 다음 형식이어야 합니다.
comgooglemaps-x-callback://?parameters
매개변수
x 콜백 URL 스키마는 comgooglemaps://
URL 스키마와 동일한 매개변수를 허용하며 다음과 같은 추가 매개변수가 있습니다. 두 매개변수 모두 필수 항목입니다.
x-source
- x-콜백 요청을 보내는 애플리케이션의 이름입니다. 짧은 이름을 권장합니다.x-success
- 완료 시 호출할 URL입니다. 자체 앱의 URL 스키마인 경우가 많아 사용자가 원래 애플리케이션으로 돌아갈 수 있습니다.
앱은 콜백 URL에 응답할 수 있도록 자체 URL 스키마를 등록해야 합니다.
- 애플리케이션이 콜백 요청에 응답할 수 있는 URL 스키마를 등록했는지 확인합니다.
x-source
매개변수에 콜백 버튼의 라벨을 전달합니다.x-success
매개변수에 콜백 URL을 전달합니다.
다음 예에서는 iOS용 Google 지도 앱을 실행하고 뉴욕을 중심으로 하는 지도를 표시합니다. 이 앱은 "SourceApp"이라는 레이블이 붙은 버튼도 표시합니다.
'SourceApp' 버튼을 클릭하면 iOS용 Google 지도 앱에서 가상 URL 스키마인 sourceapp://?resume=true
에 대한 콜백을 실행합니다.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
comgooglemaps://
URL 스키마와 마찬가지로 먼저 iOS용 Google 지도 앱을 기기에서 사용할 수 있고 x-콜백 URL 스키마를 지원하는지 확인해야 합니다. 앱은 다음 코드로 URL 스키마를 사용할 수 있는지 확인할 수 있습니다.
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
다음은 사용자가 디저트를 검색한 후 앱으로 돌아갈 수 있는 URL의 예입니다.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
앱에 내비게이션 추가
경로 요청으로 iOS용 Google 지도 앱을 실행하면 사용자가 앱에서 세부 경로 안내 내비게이션에
쉽게 액세스할 수 있습니다. comgooglemaps://
또는
comgooglemaps-x-callback://
URL 스키마를 사용할 수 있습니다.
이 코드 스니펫은 comgooglemaps-x-callback://
스키마를 사용하여 경로를 요청한 다음 사용자가 준비되면 앱으로 돌아가는 방법을 보여줍니다. 이 코드는 다음 작업을 실행합니다.
comgooglemaps-x-callback://
URL 스키마를 사용할 수 있는지 확인합니다.- iOS용 Google 지도 앱을 실행하고 뉴욕시 JFK 공항까지 경로를 요청합니다. 사용자의 현재 위치에서부터 경로를 요청하려면 출발지 주소를 비워 두세요.
- iOS용 Google 지도 앱에 "AirApp"이라는 레이블이 붙은 버튼을 추가합니다. 버튼 라벨은
x-source
매개변수로 정의됩니다. - 사용자가 뒤로 버튼을 클릭하면 가상의 URL 스키마인
sourceapp://
를 호출합니다.
Swift
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
Google 지도 데스크톱 URL에서 iOS용 Google 지도 앱 실행
앱에서 웹페이지 또는 데이터베이스와 같은 기존 Google 지도 URL에 액세스할 수 있는 경우 이 스키마를 사용하여 iOS용 Google 지도 앱에서 URL을 열어 사용자에게 최상의 네이티브 환경을 제공할 수 있습니다.
http://
또는https://
스키마를comgooglemapsurl://
로 바꿉니다.- 콜백을 사용하려면
x-source
및x-success
매개변수를 포함합니다. 이 스키마는 x-콜백-url 사양을 준수합니다.
지원되는 Google 지도 URL 형식
comgooglemapsurl://
스키마는 이 정규 표현식과 일치하는 URL을 지원합니다. 여기서 {TLD}
는 유효한 최상위 국가 도메인을 나타냅니다. 명확성을 위해 줄바꿈이 추가되었습니다.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Google 지도 앱의 사용 가능 여부 확인
먼저 기기에서 iOS용 Google 지도 앱을 사용할 수 있고 URL 스키마를 지원하는지 확인합니다.
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
예
일반적인 Google 지도 URL의 예:
원래 Google Maps URL:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
URL 구성표 사용:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
일반적인 Google 지도 URL의 예:
원래 Google Maps URL:
https://maps.google.com/?q=@37.3161,-122.1836
URL 구성표 사용:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
x-콜백으로 도쿄 타워로 가는 길을 요청하는 예:
원래 Google Maps URL:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
다음 예에서는 iOS용 Google 지도 앱을 실행하고 원래 Google 지도 URL(위)에 지정된 대로 도쿄 타워까지의 경로가 포함된 지도를 표시합니다. 이 앱은 'SourceApp'이라는 라벨도 표시합니다. 'SourceApp' 버튼을 클릭하면 iOS용 Google 지도 앱에서 가상 URL 스키마인 sourceapp://?resume=true
에 대한 콜백을 실행합니다.
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true