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을 전달할 수도 있습니다. comgooglemapsurl://
URL 스키마와 함께x-source
및x-success
매개변수를 사용하여 콜백을 실행할 수 있습니다.
- 원래 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
검색
이 스키마를 사용하여 지정한 표시 영역 위치의 검색어를 표시할 수 있습니다.
매개변수
Google 검색은 지도 표시에 사용되는 매개변수 외에도 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 NYC와 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