지도 플랫폼의 양대산맥 Google Maps Platform vs MapBox, 딜리버리 서비스를 위한 전격 비교!

코로나19 팬더믹이 장기화 되면서 비대면 서비스의 확산은 우리 일상에 큰 변화를 가져다 주고 있는데요. 그중에서도 단연 눈에 띄는 것이 딜리버리 서비스의 눈부신 성장입니다. 통계청에 따르면 국내 딜리버리 시장의 규모는 17조 3828억원으로 전년 대비 78.6% 증가하였으며 최근 3년동안 536%가 증가한 것이라고 합니다. (출처 : 통계청)
이러한 추세는 우리나라뿐만이 아니라 세계적으로도 비슷한 움직임을 보이고 있는데요. 동남아 딜리버리 시장은 그랩푸드·고젝을 비롯해 벙커스잇, 우버이츠 등이 국가별로 과점하고 있습니다. 그 대표적인 예로 저희가 이전에 포스팅했던 말레이시아의 대표적 주문 배달형 서비스 벙커스잇이 있습니다.
그렇다면 미국의 경우는 어떨까요? 미국의 대표적인 딜리버리 서비스로는 도어대시, 우버이츠, 그럽허브, 포스트메이츠 등이 있습니다. 미국 온라인 푸드 딜리버리 시장은 20년 156억달러 규모였으며 2024년까지 꾸준한 성장세가 예측된다고 합니다. (출처:Statista)
이전에 저희는 구글지도 플랫폼의 온디맨드 솔루션의 승차 딜리버리 솔루션을 운송, 딜리버리에 활용할 수 있음을 알려드린 적이 있는데요. 실제로 도어대시에서는 구글지도를 인앱네비게이션에 활용하고 있는 것을 확인할 수 있었습니다.
오늘은 거기서 한발 더 나아가 딜리버리 서비스에서 활용하는 지도 플랫폼의 주요 기능 전반을 간단하게 짚어보는 시간을 가지고자 합니다.

이를 월 평균 10억명 이상의 사용자를 바탕으로, 포춘지 선정 전세계 500대 기업의 70%, 그리고 수천개 혁신적 스타트업의 500만개 이상의 웹사이트와 앱에서 사용되고 있는 Google Maps Platform(이하 Google Maps)과, 월 평균 6억명 이상의 사용자를 바탕으로 전세계 4만5천개 이상의 웹사이트와  앱에서 사용되고 있는 Mapbox와의 비교를 통해 살펴 보도록 하겠습니다.

목차

목차를 클릭하면 이동합니다.

 

 

지도의 밑바탕을 알아 봅시다


배경 지도 비교

고객 또는 배달기사의 위치를 알기위해서는 자신들의 위치를 알 수 있는 배경 지도가 가장 기본이 된다고 볼수 있는데요.
캐나다, 토론토를 기준으로 주변 지도를 살펴보겠습니다.

Google Maps의 경우 도로정보, 지하철역, 인근 식당 등 장소정보에 대한 다양한 POI(관심지점) 정보를 담고 있는 것을 알 수 있었습니다.
또한 작은 도로 까지도 한글로 나타남을 통해 지원되는 언어에 대해 다양한 정보를 제공해 준다는 것을 알 수 있었습니다.

 

동일한 지역에 대하여 Mapbox도 도로 및 관공서, 학교등의 기본적인 정보는 보여주고 있지만 Google Maps 대비, 지역의 상점가, 식당 등 의 POI는 상대적으로 부족한 것을 알 수 있었습니다.
또한 언어 설정을 한국어로 변경하더라도 대학교 및 일부 관공서 등을 제외한 다른 정보들이 한글로 출력 되지 않아 언어의 지원 부분에서 아쉬움을 보여줍니다.

비교 POI 언어지원 도로정보
Google Maps
MapBox
Google Maps의 경우 다양한 장소에 대한 정보를 제공 MapBox 한글 미 지원 두 플랫폼 모두 도로 정보 지원

 

 

지원 언어 비교

각 지도 플랫폼이 지원하는 언어는 어떨까요? 두 플랫폼 모두 다양한 언어를 지원하고 있지만 GMP가 더 많은 언어를 지원하는 것을 알 수 있었습니다.

또한, 맵박스의 경우 특정 맵 스타일에서는 지원 언어의 제약이 있어, 다양한 맵에서의 언어 활용 측면에서 아쉬움을 보여줍니다.

MapBox

Google Maps

Languages
MapBox(13개)

Arabic
Chinese Simplified
Chinese Traditional
English
French
German
Italian
Japanese
Korean
Multilingual
Portuguese
Russian
Spanish

Google(81개)

Afrikaans,         Albanian,         Amharic
Arabic,         Armenian,         Azerbaijani
Basque,         Belarusian,         Bengali
Bosnian,         Bulgarian,         Burmese
Catalan,         Chinese,         Chinese (Simplified)
Chinese (Hong Kong),         Chinese (Traditional)
Croatian,         Czech,         Danish
Dutch,         English,         English (Australian)
English (Great Britain),         Estonian
Farsi,         Finnish,         Filipino
French,         French (Canada),         Galician
Georgian,         German,         Greek
Gujarati,         Hebrew,         Hindi
Hungarian,         Icelandic,         Indonesian
Italian,         Japanese,         Kannada
Kazakh,         Khmer,         Korean
Kyrgyz,         Lao,         Latvian
Lithuanian,         Macedonian,         Malay
Malayalam,         Marathi,         Mongolian
Nepali,         Norwegian,         Polish
Portuguese,         Portuguese (Brazil)
Portuguese (Portugal),         Punjabi
Romanian,         Russian,         Serbian
Sinhalese,         Slovak,         Slovenian
Spanish,         Spanish (Latin America)
Swahili,         Swedish,         Tamil
Telugu,         Thai,         Turkish
Ukrainian,         Urdu,         Uzbek
Vietnamese,         Zulu

Supported Styles
MapBox

streets-v11
outdoors-v11
dark-v10
light-v10
satellite-streets-v9
traffic-day-v2
traffic-night-v2
based on Mapbox v8 styles

No Limit

 

 

 

지도가 담고 있는 정보는 어떨까요


장소정보 비교

그렇다면 이렇게 단순히 지도화면에서 표시되는 POI(Point of Interest, 관심지점)가 아닌 실제로 지도상에서 장소정보를 검색했을 때는 어떨까요?

각각의 맵에서 제공하는 검색기능을 활용하여 나오는 결과를 비교해 보겠습니다.

토론토에 있는 스타벅스를 한번 찾아볼까요? 먼저 Google Maps 입니다. 아래의 동적지도의 ‘Search Box’에 원하는 검색어를 입력하고 ‘지도위치기반검색’을 눌러 봅시다. 결과는 어떨까요?

service.textSearch({ 'query': searchWord }, function (predictions, status, hasNextPage) {

 

Google Maps의 경우 hasNextPage라는 기능을 활용하여, 최대 20개씩 추가로 결과를 가져와 최대 60개 까지 결과를 출력하는 것을 확인할 수 있었습니다.
또한 Google Maps는 특정 지역의 POI 장소를 검색할 때 해당 지역의 키워드를 앞이나 뒤에 붙여주는 것만으로도 검색이 가능했습니다. 예) 스타벅스 강남역, 강남역 스타벅스, toronto starbucks, starbuck toronto

이번에는 Mapbox입니다. 마찬가지로 아래 동적지도 ‘수색’란에 원하는 검색어를 입력하고 좌측 상단의 ‘마커’버튼을 눌러봅시다. 이번에는 어떻게 나올까요?

MapBox의 경우 Google Maps의 hasNext와 같은 기능은 없었으며, limit라는 옵션을 설정 해 최대 10개 까지 결과를 출력하는 것을 확인할 수 있었습니다.

(Google, Mapbox 검색 결과 비교)

 

빠르고 효과적인 길을 알려주는 방법


경유지 최적화 비교

딜리버리 서비스에서 필요한 지도서비스의 기능중에서 핵심적이라고 할 수 있는 것이 바로 최적의 경로를 안내하는 경로 탐색, 그 중에서도 경유지의 최적화입니다.

[Google Maps] 클릭시 동적화면으로 이동합니다

[Mapbox] 클릭시 동적화면으로 이동합니다

경유지 최적화를 통해 계산된 최적의 배송 경로는 비용절감 및 고객만족에도 큰 기여를 할 수 있습니다.

두 지도플랫폼 모두 경유지 최적화를 지원하고 있습니다. Google Maps는 경유지 최대 25개를 지원하며, Mapbox의 경우 최대 10개의 경유지를 지원합니다.

[Google Maps] – 경유지 최적화

[Mapbox] – 경유지 최적화

사용성의 측면에서 보았을 때, Google Maps는 optimization 옵션을 제공하지만, Mapbox는 별도의 optimization API를 이용해야 해서 번거로움이 있었습니다.

directionsService.route({
  origin: document.getElementById("start").value,
  destination: document.getElementById("end").value,
  waypoints: waypts,
  optimizeWaypoints: true,
  travelMode: by
})

아래와 같이 Google Maps는 optimizeWaypoints를 true로 지정함으로서 최적화 기능을 손쉽게 이용할 수 있는 반면,  Mapbox의 경우에는  최적화 경로를 반환하는 별도의 함수에서 직접 경유지 지오코딩,  optimization API를 이용한 최적화 경로 요청, 경로 출력, 경유지 마커 생성의 일련의 과정을 직접 구현해야했습니다.

 

async function optimizedRoute(by) { ...
async function doGeocode(placeName) { ...
function drawline_mapbox(coords) { ...
function addMarkers(features) { ...

 

또 다른 차이점 중 하나는 Mapbox에서는 출발지의 텍스트 직접입력이 불가능하다는 점입니다. 예를 들어 “여의도 동화빌딩” 의 텍스트 쿼리를 이용할 수 없어서, 직접 지오코딩을 통해서 텍스트를 좌표로 변환해서 사용해야했습니다.

 

 

실시간 교통 정보 반영 비교

Google Maps와 Mapbox  모두 실시간 교통정보 반영한 경로 탐색을 지원하고 있습니다.

[Google Maps] – 오후시간과 퇴근시간

[Mapbox] – 오후시간과 퇴근시간

Google Maps의 경우 최대 25개(출발, 도착지 포함)의 경유지에 대한 실시간 교통정보를 반영한 경로를 안내하지만, Mapbox는 실시간 교통정보를 반영한 경로 탐색 시 최대 3개(출발, 도착지 포함)의 경유지에 대해서만 안내를 지원합니다.

 

 

경로 탐색 비교

아래 표는 경로 탐색 기능에 대해 두 플랫폼을 비교한 내용입니다.

비교 전체경로거리,시간 이동수단 턴바이턴
Google Maps
MapBox
Google Maps의 경우 언어,
경로의 거리와 시간의 단위 및 형식을 자동 변환
Google Maps의 경우 대중교통 길찾기 지원 Mapbox 플러그인에서는 턴바이턴 출력 UI 제공

 

 

딜리버리 서비스에 필요한 지도 플랫폼


효과적인 딜리버리서비스를 위해서는 지도 플랫폼의 고객의 위치와 배송지의 정보를 파악할 수 있는 기능, 기사에게 배달할당을 위한 거리계산, 경로안내 등의 기능이 필수적입니다.

이를 각 요소별로 살펴보자면,

배경지도의 측면에서는 기본적으로 표시되는 기본적인 장소정보의 질과 양이 중요하며, 글로벌 서비스를 위해서는 다양한 언어를 지원하는 것 또한 강점이 될 수 있습니다.

위치정보와 배송지 정보의 파악을 위해서는 해당 POI(관심지역) 정보를 검색할 때, 원하는 결과 값을 빠르고 쉽게 찾을 수 있는지 그리고 그 결과 값이 얼마나 풍부한지가 중요하다고 볼 수 있습니다.

최적의 배달할당, 배송지와의 경로안내를 위해서는 지정한 경유지를 최소한의 시간과 비용으로 도달할 수 있도록하는 경로 최적화, 한번에 많은 배송을 처리할 수 있도록 도와주는 설정 가능한 최대 경유지 수 그리고 출퇴근 시간이나, 교통정체 등 실시간 교통정보를 반영한 경로안내가 가능한지가 중요요소라고 할 수 있습니다.

지금까지 설명한 두 지도 플랫폼 모두 위와 같은 딜리버리 서비스에 필수적인 기능을 제공하고 있습니다. 다만 그를 실제로 적용하여 활용하였을 때 편의성이나 지원범위의 경우에는 다소 차이가 있음을 알 수 있었습니다.

 

비교 배경지도 지원언어 장소정보 경유지최적화 실시간교통정보 경로탐색
Google Maps 기본정보 외 다양한 POI 정보 제공 81개 언어지원, 작은 도로까지 한글화 POI 최대 60개 출력, 단어 조합 검색 가능 최대 25개 경유지 최적화 지원 실시간 교통정보반영
(경유지 최적화 최대 25개 지원)
경로거리, 시간 단위 형식 자동 변환 지원,대중교통 길찾기 지원,턴바이턴안내 지원
MapBox 도로, 관공서 등 기본 정보 제공 13개 언어 지원, 상세정보 한글화 안됨 POI 최대 10개 출력 최대 10개 경유지 최적화 지원 실시간 교통정보 반영
(경유지 최적화 3개까지 지원)
경로거리, 시간 단위 형식 자동변환 미지원,대중교통 길찾기 미지원,턴바이턴안내 지원

 

 

 

SPH는 Google Maps, SuperMap, Maxar Technologies 등 다양한 케이스에 존재하는 다양한 제품군을 보유하고있는 고객의 사례에 꼭 맞는  무료 세미나 및 인적 컨설팅을 제공하고 있습니다. 각 케이스에 더욱 자세한 이야기를 나누고 싶으시다면,  여기 에서 문의 주시길 바라며, SPH에서 발행하는  GIS / 로케이션인텔리전스 관련 최신 소식 을 받아보고 싶으신 분들은  페이스북 페이지  또는  뉴스레터 를 구독 해 주시길 바랍니다. 감사합니다.

새로운 WebGL 기반 지도 기능 사용하기

새로운 WebGL 기반 지도 기능 사용하기

이번 Google I/O 2021에서 소개된 Google Maps Platform에 대한 이야기를 공유해 드리고자 합니다. Google은 Maps JavaScript API의 새로운 기능인 “기울기와 회전(Tilt and Rotation) 옵션”과 “WebGL Overlay View”의 베타 버전을 발표했습니다.

새로운 기능은 GCP 콘솔을 통해 벡터 지도의 Map ID를 생성해서 벡터 지도를 배경 지도로 호출하면 이용할 수 있습니다. 물론 베타 버전이기 때문에 스크립트 호출 시 “v” 파라미터를 아래와 같이 “beta”로 설정해야 합니다.

<script src=”https://maps.googleapis.com/maps/api/js?key=API_KEY&v=beta&callback=initMap”></script>

기울기와 회전 옵션은 배경 지도가 벡터 지도이기만 하면 사용이 가능합니다. 이를 통해 2D 지도의 한계를 넘어서 기울이기와 회전이 가능하게 되었습니다. 게다가 일정 줌 레벨 이상이 되면 세계 주요 도시에서 3D 건물 모델링을 확인할 수 있습니다.

또한 지금까지의 Overlay View는 구글 지도 위에 투명 레이어를 통해서 2D 그래픽만을 랜더링할 수 있었습니다. 하지만 이제 WebGL Overlay View를 통해 벡터 지도 위에 3D 그래픽을 직접 랜더링할 수 있습니다. 이를 통해 이전에는 불가능했던 새로운 지도 경험을 사용자에게 제공할 수 있게 되었습니다.

 

👩‍🎓 WebGL이란?

WebGL은 원래 Mozilla Foundation에서 개발한 low-level 브라우저 API입니다. 이는 웹 어플리케이션에서 휴대폰 및 컴퓨터와 같은 클라이언트 장치의 GPU (그래픽 처리 장치) 자원에 접근 할 수 있게 합니다. 덕분에 원래 브라우저는 자체적으로 3D 랜더링하는 데 필요한 무거운 계산을 처리 할 수 ​​없었지만, WebGL을 사용하면 이러한 계산을 클라이언트 장치의 GPU에서 처리할 수 있습니다.

👩‍🎓 요구사항

WebGL Overlay View를 사용하려면 벡터지도가 활성화 된 지도 ID가 필요합니다. 또한 지도 ID를 생성 할 때 기울기 및 회전을 활성화 옵션을 체크해야 합니다. 그렇지 않으면 지도가 2D 지도와 같이 기본 하향식 보기로 제한됩니다. 즉, 지도를 3차원으로 볼 수 없게 됩니다.

👩‍🎓 기울기 및 회전 설정

지도를 로드할 때 기울기와 회전 정도를 설정하려면, 지도 객체를 만들 때 “tilt” 및 “heading” 속성 값을 제공하면 됩니다.

const mapOptions = {
  mapId: "15431d2b469f209e",
  tilt: 0,
  heading: 0,
  zoom: 17,
  center: {
    lat: -33.86957547870852, 
    lng: 151.20832318199652
  }
}
const mapDiv = document.getElementById("map");
const map = new google.maps.Map(mapDiv, mapOptions);

기울기는 0과 67.5 사이의 값을 가지며, 0도는 기본 직선 보기이고 67.5는 최대 기울기입니다. 사용 가능한 최대 기울기는 zoom 레벨에 따라 달라집니다.

회전은 heading 속성에서 0도에서 360도 사이의 값을 가집니다. 여기서 0은 정북향을 의미합니다.

지도 객체에서 직접 “setTilt()” 및 “setHeading()” 함수를 호출하여 원할 때마다 기울기 및 회전을 변경할 수도 있습니다. 이벤트에 대한 응답으로 지도의 기울기나 방향을 변경하려는 경우 유용합니다.

map.setTilt(45);
map.setHeading(180);

또한 사용자는 <shift> 키를 누른 상태에서 마우스를 드래그하거나 키보드의 화살표 키를 사용하여 지도의 기울기 및 회전을 수동으로 제어 할 수 있습니다.

 

👩‍🎓 맵에 WebGL Overlay View 추가

WebGL Overlay View는 “google.maps.WebglOverlayView”의 객체를 생성하여 Maps JavaScript API에서 사용할 수 있습니다. 오버레이 인스턴스가 생성되면 인스턴스에서 “setMap”을 호출하여 지도에 적용하기만 하면됩니다.

const webglOverlayView = new google.maps.WebglOverlayView;
webglOverlayView.setMap(map);

지도에 랜더링되는 모든 객체를 처리하기 위해 WebGL Overlay View는 5가지 지점에서 WebGL 랜더링 컨텍스트의 라이프사이클에 접근할 수 있습니다.

➡️ 아래는 라이프사이클에 대한 간단한 요약입니다.

  • “onAdd”는 대부분의 전처리가 수행되는 곳입니다. 여기에서 모든 작업을 수행하는 이유는 지도 랜더링에 지장을주지 않도록 하기 위한 것입니다.
  • “onRemove”는 모든 중간 객체를 제거할 수 있습니다.
  • “onContextRestored”는 지도가 랜더링되기 전에 호출되며 WebGL 상태를 초기화합니다.
  • “onDraw”는 지도와 앞서 설정된 모든 것이 랜더링되는 곳입니다.
  • “onContextLost” 이 시점부터 WebGL 컨텍스트는 제거됩니다.

라이프사이클을 관리하려면 Maps JavaScript API가 WebGL 적절한 지점에서 실행할 함수를 구현하세요.

예시 :

webglOverlayView.onDraw = (gl,
coordinateTransformer) => { //do some
rendering }

 

👩‍🎓 카메라 애니메이션 만들기

WebGL Overlay View 베타 릴리즈의 일부로 카메라 위치, 기울기, 회전 및 확대/축소를 동시에 설정하는 데 사용할 수 있는 “moveCamera()”가 도입되었습니다. “setTilt()” 및 “setHeading()”과 마찬가지로”moveCamera()”는 지도 객체에서 직접 호출됩니다.

애니메이션 루프에서 “moveCamera()”를 연속적으로 호출하면 카메라 위치 변경을 따라 부드러운 애니메이션을 만들 수도 있습니다. 아래는 브라우저의 “requestAnimationFrame” API를 사용하여 각 프레임의 기울기 및 회전을 변경한 예제입니다.

const cameraOptions = {
  tilt: 0,
  heading: 0
}

function animateCamera () {
  cameraOptions.tilt += 1;
  cameraOptions.heading += 1;
  map.moveCamera(cameraOptions);
}

requestAnimationFrame(animateCamera);

 

👩‍🎓 한번 시도해 보세요! 

베타 버전에서 API를 호출하여 Maps JavaScript API의 새로운 WebGL 기반 기능을 지금 바로 사용해 볼 수 있습니다. 시작하는 데 도움이 되는 샘플 코드 및 예자와 모든 세부 정보가 포함된 새로운 코드랩공식 문서가 있습니다. 또한 기능 둘러보기 및 데모를 확인하여 이러한 기능의 실제 구현에 대해 자세히 알아보고 사용해보세요.

새로운 WebGL 기반 지도 기능을 테스트하고 개선하는 데 도움이 되는 버그 리포트, 기능 요청 및 피드백이 필요합니다! 3D 지도를 사용하여 재미있게 건물을 만들어보세요. 소중한 피드백 부탁드립니다. 🙏 ❤️

 


SPH는 Google Cloud Platform (Maps)의 Premier Partner로서 SuperMap, Maxar Technologies 등 다양한 사례와 자료를 보유하고 있으며, 고객의 사례에 맞는 무료 세미나 및 인적 컨설팅을 제공해드립니다. 더욱 자세한 이야기를 나누고 싶으시다면, 여기 에서 문의하시길 바랍니다. SPH에서 발행하는  GIS / 로케이션 인텔리전스 관련 최신 소식을 받아보고 싶으신 분들은 페이스북 페이지 또는 뉴스레터를 구독해 주시길 바랍니다. 감사합니다.

Directions API 새로운 기능과 해외 활용사례

🚗 Directions API란?

Directions API는 쉽게 설명하자면, 프로젝트의 기능 중 출발지-목적지 경로를 나타내주는 지도를 넣기 위해서 필요한 API입니다. HTTP 요청을 사용하여 위치 간에 JSON 또는 XML 형식의 길 찾기를 반환하는 웹 서비스입니다. 대중교통, 운전, 도보 또는 자전거와 같은 다양한 교통수단에 대한 길 찾기 안내를 받을 수 있습니다.

사용자 입력 (예 : 사용자 인터페이스 요소 내)에 실시간으로 응답하는 길 찾기 계산을 할 때 Directions API를 사용하거나 Maps JavaScript API를 사용하는 경우 Directions 서비스를 사용할 수 있습니다. 서버 측 사용의 경우 Google 지도 서비스용 Java 클라이언트, Python 클라이언트, Go 클라이언트 및 Node.js 클라이언트를 사용할 수 있습니다.

🚥Directions API 새로운 기능 Location Modifiers

1. side_of_road 옵션

도착지 좌표 파라미터 앞에 “side_of_road:”라는 문자열을 추가하면, 해당 좌표에 가까운 도로 방향(상행, 하행)으로 차량이 정차할 수 있도록 길 찾기 로직이 수행됩니다.

 

– 요청 URL 샘플

https://maps.googleapis.com/maps/api/directions/json?

origin=37.7680296,-122.4375126

&destination=side_of_road:37.7663444,-122.4412006

&key=YOUR_API_KEY

 

같은 출발지, 도착지 좌표를 가지더라도 side_of_road 옵션 유무에 따라 아래와 같은 결과 차이가 발생합니다.

2. heading 옵션

heading 옵션은 출발지 좌표에서 운전자가 어떤 방향으로 주행 중인지를 나타낼 수 있는 옵션입니다. 즉, 주행 중인 방향에 따라 경로에 U턴이 추가되는 등 길 찾기 결과가 달라질 수 있습니다. heading 옵션의 값은 0부터 360까지이며 0과 360은 북쪽, 90도는 동쪽을 의미합니다.

 

– 요청 URL 샘플

https://maps.googleapis.com/maps/api/directions/json?

origin=heading=90:37.773279,-122.468780

&destination=37.773245,-122.469502

&key=YOUR_API_KEY

 

같은 출발지, 도착지 좌표를 가지더라도 heading 옵션 유무에 따라 아래와 같은 결과 차이가 발생합니다.

🎯 Directions API는 국내에서 활용이 불가능합니다. 하지만 해외 서비스를 기획하시는 비즈니스 대상을 기준으로 Directions API를 충분히 활용하실 수 있습니다. 이 신규 업데이트된 기능으로 더 수요가 예상되는 산업군은 아래와 같습니다.

1) 🚕 택시 플랫폼 : 기사의 고객 픽업 시 경로 효율성 향상 (고객위치에 따른 최적 경로 탐색)
2) 🚛 물류, 운송업 : 사전 차량 이동 경로 수립 시 활용 (차량이 출발하는 방향 설정이 가능하므로 최적 경로 탐색)

🛵 Directions API 해외 활용 사례 – Dunzo

Dunzo는 사용자에게 일상생활에 편리함과 선택할 수 있는 자유를 배송해주는 지역 전자 상거래 플랫폼입니다. 사용자, 현지 상인 및 배송 파트너와 긴밀히 협력하는 Dunzo를 사용하면 사용자가 매일 사용하는 상품에서 애완동물 용품에 이르기까지 도시의 모든 물품을 한 곳에서 선택하여 배송받을 수 있습니다.

인도에는 여러 지역에 걸쳐 밀착형 배달 서비스가 있습니다. 대부분은 음식과 같은 카테고리에 초점을 맞추고 있지만 Dunzo는 수평적이며 다양한 서비스와 상품을 제공합니다. 사용자가 주문하고 물건을 받기까지 탁월한 경험을 구축하는 것은 Dunzo의 가장 중요한 임무입니다. 그속에는 제품선택에서 부터 주문 추적, 배송 소요 시간 예측까지 사용자 경험 전반에 영향을 끼치는 중요한 요소들이 포함되어 있습니다.

Dunzo 배송 파트너가 정시에 배송 약속을 이행 할 수 있도록 지원하는 인앱 탐색 기능

Directions API를 활용하여 신뢰할 수 있는 실시간 도착 예측

예상 도착 시각 (ETA) 에 대해서도 Directions API를 활용하여 작업했습니다. 이전에는 자체 맞춤 로직을 사용하여 고객이 주문하기 전에 배송 시간을 약속했습니다. 그러나 인도 도로의 통근 시간을 예측하는 데 몇 가지 요인이 있었기 때문에 사용할 수 있는 제한된 데이터로 예상 도착 시각을 추측하는 것이 매우 어려웠습니다. Directions API를 활용하여 실시간 교통 및 도로 조건에 따라 출퇴근 시간을 얻을 수 있었고 고객에게 더 나은 ETA를 제공할 수 있었습니다. 이 변경 사항 이후에 잘못된 ETA 추측은 ​​14 % 감소했습니다.

 

+ 배달 위치 검색

솔루션에서 정말 필수적으로 중요한 부분이 사용자 앱의 위치 검색이었습니다. 과거에는 배달 파트너가 고객의 배달 위치를 찾을 수 없는 몇 가지 경우가 있었습니다. 이는 모든 주소가 기록되지 않거나 표준 명명법을 따르지 않는 인도의 매핑 시스템 때문입니다. 일부 위치는 여전히 문제를 가지고 있습니다. 하지만 Place Details API를 사용하면 이전에는 알지 못했던 건물 이름과 같은 더 많은 컨텍스트 데이터를 추출할 수 있습니다. 우리의 데이터에 따르면 배달 파트너는 건물 이름을 거리 이름이나 핀 코드보다 더 잘 인식하고 있습니다. 거리 이름이나 핀 코드는 현실에서 명확하게 표시되지 않기 때문입니다. 구글 지도의 Place Details API를 활용한 덕분에 위치 관련한 지원 문의가 9.3 % 감소했습니다.

“구글 지도 API를 활용하면서 비용이 가장 인상적인 점 중 하나였습니다. 모든 개별 API 호출 및 관련 비용에 대해 걱정할 필요 없이 고객 및 배달 파트너를 위한 최상의 경험을 구축하는 데 집중할 수 있게 되었습니다.”

 

🚃 Directions API 해외 활용 사례 – 그 외

LG닷컴(미국) – 가전제품 구매 시 Where to Buy 가까운 매장 찾기, 모바일앱으로 해당 매장에 대한 길 찾기로 활용

카카오톡(해외) – 카카오톡 사용자간 위치 공유 및 길 찾기

LINE MAN(태국) – 라인맨(배달 기사) 위치 확인 및 경로 안내

LINE TAXI(대만)  – 라인 택시, 드라이버의 택시 영업에 활용 (손님 위치 확인 픽업, 목적지 경로 안내)


SPH는 Google Cloud Platform (Maps)의 Premier Partner로서 SuperMap, Maxar Technologies 등 다양한 사례와 자료를 보유하고 있으며, 고객의 사례에 맞는 무료 세미나 및 인적 컨설팅을 제공해드립니다. 더욱 자세한 이야기를 나누고 싶으시다면, 여기 에서 문의하시길 바랍니다. SPH에서 발행하는  GIS / 로케이션 인텔리전스 관련 최신 소식을 받아보고 싶으신 분들은 페이스북 페이지 또는 뉴스레터를 구독해 주시길 바랍니다. 감사합니다.

 

구글지도 활용 사례 : farm to table ! 농산물 딜리버리 앱

Sayurbox : 도시 거주자에게 신선한 농산물을 배달해주며 수확하는 농부에게도 자율성을 부여하는 앱 서비스!

인도네시아 회사인 Sayurbox는 당일 배송 팜-투-테이블 전자 상거래 앱을 개발하였습니다. 3배로 급증한 주문들을 처리하고, 최종 도착하는 배송 속도를 두 배로 늘리고, Google Maps Platform을 통해 농촌 농민들에게 자율성을 부여하기 위한 전략적 계획을 제공합니다.

Sayurbox는 어떤 회사인가요?

Sayurbox는 인도네시아의 농장에서 식탁까지 농산물을 당일 배송 하는 전자 상거래 플랫폼입니다. 외딴 시골 지역의 신선한 농산물을 당일 배송하는 것이 특징입니다. 전통적인 농촌 마을을 디지털 공급망을 통해 도시 가족과 연결하여 농산물 비즈니스에 힘을 실어 주려고 다방면으로 방안을 찾고 그것에 대한 플랫폼을 만들었습니다.

위치 : 인도네시아
Google Maps PlatformGeocoding APIGoogle Places APIMaps JavaScript API 을 활용하여 이 플랫폼을 구축하였습니다.

눈에 뜨이는 결과는? :

  • 운전자 배정 계획 소요 시간을 6 시간에서 10 분 미만으로 줄여 더 많은 배송을 이뤄질 수 있게 하였습니다.
  • 주문 당 비용을 25 % 절감하여 앱 개발을 위한 자금을 확보하였습니다.
  • 3 배 급증하는 주문을 처리하는 데 도움이 되는 새로운 물류 기능을 제공합니다.

2 배 빠른 배송으로 당일 도착 가능

인도네시아 전역에서 전통적인 ‘캄풍(시골마을)’ 또는 작은 마을의 소규모 농부들은 케일에서 파파야 및 아보카도에 이르기까지 놀랍도록 다양한 프리미엄 농산물을 재배합니다. 한편, 더 건강하고 다양한 음식 선택을 원하는 도시 중산층이 급증하고 있습니다. 그러나 성장과 성공의 비결처럼 들리는 것은 종종 배송을 하는 데 장애가 될 수 있는 것들로 막상 현실화하는 데 어려움이 있을 것 같습니다. UN의 국제 농업 개발 기금에 따르면 “수백만의 소규모 농민들이 이러한 기회를 이용할 수 없습니다. 왜냐하면 농민들은 소비자에게 직접 판매 할 수 있는 물류 인프라가 없기 때문에 다수의 중개인, 비효율적인 공급망 그에 따른 높은 낭비를 초래합니다.”라고 말했습니다.

이러한 요구를 해결하기위한 임무에서 Rama Notowidigdo와 그의 파트너는 Sayurbox를 출시했습니다 . 그들은 디지털화 된 공급망에 의존하는 혁신적인 전자 상거래 솔루션을 통해 과일과 채소를 도시 테이블로 직접 가져옴으로써 인도네시아의 전통 농부 (인구의 1/3을 대표하는)들에게 기회를 제공하고 있습니다. Sayurbox는 시각적으로 불완전한 농산물도 판매하는데, 이는 색다른 모양, 크기 또는 색상으로 인해 슈퍼마켓에서 판매되지 않는 상품들입니다. 사용자를 위해 불완전한 농산물에 대한 가격을 낮춤으로써 Sayurbox는 농부의 수확량을 100% 흡수하여 판매를 할 수 있습니다. 이로써 안 팔리는 농산물에 대한 손실을 방지할 수 있으며 음식물 쓰레기도 최소화 할 수 있습니다.

Sayurbox 모델에서는 시골로 빠르게 연결하는 소싱 센터가 농산물을 가져와 세 개의 Sayurbox 소싱 허브 중 하나에 적합하고 빠르게 분배합니다. 거기에서 농산물을 분류하고 포장하여 당일 온라인 고객에게 배송합니다. 도시 소비자에게 신선한 무농약 농산물로 건강한 삶을 장려하면서 농부의 생계를 증진하는 아주 효과적인 시스템입니다.

“신선한 음식 배달에서는 공급망 효율성이 중요합니다. 즉, 배달 네트워크의 느슨한 부분 없이 속도를 극대화하고 비용을 최소화해야 합니다. Google Maps Platform은 농부들의 실행 가능한 비즈니스를 강화해주는 비전을 만드는 데 필요한 정확한 위치 좌표와 최적의 경로를 제공합니다.”

— Rama Notowidigdo , Sayurbox 공동 창립자

성공하기 위해 Sayurbox는 최적의 공급망 효율성과 신속한 당일 배송을 가능하게 하는 세계적 수준의 매핑 도구를 필요로하여 농산물이 고객 문 앞에서 시들거나 손상되지 않도록 보장했습니다. 이 스타트 업은 Google Maps Platform으로 눈을 돌리고 캄풍(시골 마을) 전통을 거대 도시 소비자와 연결하는 데 필요한 솔루션을 찾았습니다.

Sayurbox의 공동 창립자인 Rama는 “신선한 음식 배달에서 모든 것은 공급망 효율성에 관한 것입니다. 즉, 배달 네트워크의 느슨한 부분 없이 속도를 최대화하고 비용을 최소화해야합니다. 더불어 Google Maps Platform은 농부들의 실행 가능한 비즈니스를 강화해주는 비전을 만들기 위해 필요한 정확한 위치 좌표와 최적의 경로를 제공합니다.”라고 말했습니다.

 

당일 배송이 가능하도록 경로 최적화

Sayurbox가 2016년에 출시되었을 때 온라인 주문부터 집까지 배송까지 이틀이 걸렸습니다. 이 플랫폼은 인도네시아의 혼란스러운 도시에서 배달 지역에 대한 지도가 머릿속에 완전히 그려지는 운전자들의 네트워크에만 의존했습니다. 각 운전자의 전문 지식을 기반으로 배달 일정을 수동으로 계획하는 데 6시간 이상이 걸렸으며 사실상 하루를 낭비했습니다.

올해 Sayurbox는 구글지도 파트너사의 도움으로 Google Maps Platform을 적용하기 시작했고 배포 기능에서 즉각적인 변화를 달성했다고 Rama는 말합니다. Geocoding API 와 Geolocation API를 활용하여 거진 하루 걸렸던 일이 10분 내로 완료할 수 있었습니다. 또한 경로 자체가 최대 공급망 효율성을 제공하도록 최적화되어 더 많은 배송과 더 큰 비용 절감이 가능하게 되었습니다.

Rama는 “농산물을 자동으로 지능적으로 배포할 수 있게 함으로써 Geocoding API 및 Geolocation API와 같은 Google Maps Platform 제품을 사용하여 배달을 위해 하루에 더 많은 슬롯을 만들어 수익을 직접적으로 높일 수 있었습니다.”라고 말합니다.

 

Google Maps Platform으로 3배의 성장에 대한 대응

Google Maps Platform을 채택한 이후 Sayurbox가 달성한 결과는 상당했습니다. 체인의 모든 단계에서 불필요한 부분을 자르고 Sayurbox는 Google Maps Platform을 사용하여 각 음식 주문을 배달하는 비용을 거의 25% 절감했습니다.

COVID-19가 닥쳤을 때 Sayurbox의 신선한 현지 재배 야채를 농장에서 각 집의 테이블로 배달하는 수요가 급격히 증가하여 주문이 3배 증가했다고 Rama는 말합니다. Sayurbox는 Google Maps Platform이 지원하는 물류 기능 덕분에 인도네시아 대도시의 양질의 농산물 주문을 충족 할 수 있었습니다.

Rama는 “Google Maps Platform이 없었다면 양질의 농산물에 대한 도시의 긴급한 주문들이 한꺼번에 몰려오는 상황을 처리할 수 ​​없었을 것”이라고 말합니다.

 

인도네시아 음식이 힘을 북돋아 주는 여정 가속화

Rama는 Sayurbox 여정에 적합한 Google Maps Platform 파트너를 찾는 것이 플랫폼 성공의 핵심이라고 말합니다. 전 세계 사람들은 개인이 사용하는 Google 지도 기능에 익숙하지만, Google 지도 플랫폼 제품의 기술은 완전히 다른 문제라고 그는 말합니다. 구글 지도 파트너사를 통해 Rama는 제품 및 기능 배포에 대한 모범 사례에 익숙해지면 자체적으로 성능이 향상되고 비용이 절감될 수 있음을 발견했습니다.

“농산물을 자동으로 적합하고 빠르게 배송할 수 있게 함으로써 Geocoding API 및 Geolocation API와 같은 Google Maps API를 사용하여 더 많은 배송량을 소화할 수 있게끔 슬롯들을 생성하여 수익을 직접 높일 수 있었습니다.”

— Rama Notowidigdo , Sayurbox 공동 창립자

“Google Maps Platform을 사용하기 시작했을 때는 경험이 없었습니다. 한때는 제품 및 기능에 매월 4억 루피아를 지출했는데, 이는 3만 달러에 해당합니다. 구글지도 파트너사를 통해 이를 2억5천만 루피아로 줄이면서 약 40%의 비용을 절감하는 동시에 효율성을 극대화하여 고객에게 배송할 수 있는 서비스를 최적화 할 수 있었습니다.”

농업 비즈니스 성장의 유기적 순환 촉진

Rama는 Sayurbox가 Google Maps Platform으로 추구할 수 있는 성장 기회가 무궁무진해서 지금 이룬 것은 표면에 불과하다고 말합니다. Sayurbox 진화의 다음 단계는 배송 기사 배정을 더욱 간소화하고 라우팅을 최적화하는 드라이버 앱을 개발하는 것입니다.

다음 프로젝트는 Sayurbox는 실시간 교통 데이터를 여정 매핑으로 가져오는 Maps JavaScript API의 Traffic Layer와 같은 고급 Google Maps Platform 기능을 적용하는 데 구글지도 파트너사와 함께 협업할 예정이라고 합니다.

“Google Maps Platform을 사용하기 시작했을 때는 경험이 없었습니다. 한때는 제품 및 기능에 매월 4억 루피아를 지출했는데, 이는 3만 달러에 해당합니다. 구글지도 파트너사를 통해 이를 2억5천만 루피아로 줄이면서 약 40%의 비용을 절감할 수 있었습니다.”

— Rama Notowidigdo , Sayurbox 공동 창립자

라스트 마일 배송(상품이 소비자에게 최종 배송되는 마지막 과정) 외에도 Sayurbox는 Google Maps Platform을 통해 활성화된 첫 번째 및 중간 마일 배송의 단계의 농부들에게 힘을 더 실어줄 계획입니다. 농부 및 기타 생산자를 위해 설계된 앱은 전국의 Sayurbox 소싱 센터로 가는 가장 빠르고 효율적인 경로를 제공할 것입니다. 이를 통해 Sayurbox는 더 많은 농부를 수용하여 캄풍(시골 마을) 커뮤니티에 더 많은 사업적 번영을 가져다주고 도시 가정의 식탁에 더 많은 가치와 다양성을 더할 수 있습니다. 목표는 시골 마을 비즈니스에 힘을 실어주고 농촌 성장 및 건강한 도시 생활의 유기적 순환을 유발하는 것입니다.

Rama는 “인도네시아는 핵심 농업 국가입니다. 우리는 디지털 기술을 통해 가능한 한 많은 인도네시아 사람들에게 놀라운 결과들을 제공함으로써 농부들이 뿌듯할 수 있도록 만들고 싶습니다. Google Maps Platform은 세계적 수준의 디지털 공급망을 통해 전통적인 생활에 활력을 불어넣는 데 도움이 됩니다.”


SPH는 Google Maps, SuperMap, Maxar Technologies 등 다양한 케이스에 존재하는 다양한 제품군을 보유하고있는 고객의 사례에 꼭 맞는  무료 세미나 및 인적 컨설팅을 제공하고 있습니다. 각 케이스에 더욱 자세한 이야기를 나누고 싶으시다면,  여기 에서 문의 주시길 바라며, SPH에서 발행하는  GIS / 로케이션인텔리전스 관련 최신 소식 을 받아보고 싶으신 분들은  페이스북 페이지  또는  뉴스레터 를 구독 해 주시길 바랍니다. 감사합니다.

지원 중단에 따른 스트레스 줄이기! 구글지도의 SDK 의존성 이해

개발자 및 최종 사용자를 위해 Google Maps Platform을 개선하기 위해 때때로 기존 기능을 지원 중단해야합니다. 예를 들어 지난해 코로나 19 확산을 막기 위해 많은 시설이 일시적으로 문을 닫았을 때, 우리는 장소의 상태를 이분법적 방식으로 묘사하지 않는 business_status필드를 도입했고, 일시적으로 폐쇄된 장소를 정확하게 설명할 수 없기 때문에 permanently_closed필드를 더 이상 사용하지 않습니다.

 

프로덕션 코드 자체를 변경하는 것이 스트레스가 될 수 있음을 충분히 이해하기 때문에 사용 중단을 최소화하려고합니다. 프로젝트에 영향을 미칠 수 있는 지원 중단에 대한 알림을 받았을 때 Google Maps Platform내의 지원 중단 작동 방식을 이해하면 조치를 언제 취하면 좋을 지 결정하는 데 도움이됩니다.

 

지원 중단(deprecated)과 해제(decommissioned)

먼저 소프트웨어 토론에서 자주 혼동되는 두 용어에 대한 정의를 살펴 보겠습니다.

 

  • deprecated : 사용을 중지하는 것이 좋습니다. 더 나은 대안이 있거나 또는 계획된 폐기가 사용을 중지해야하는 이유가 될 수 있습니다.
  • decommissioned : 한 번 사용할 수 있었던 항목은 더 이상 사용할 수 없거나 지원되지 않습니다. 사용 중지 된 소프트웨어를 호출하면 예측할 수 없는 동작이나 잘못된 응답이 발생할 수 있습니다.

 

SDK의 지원 중단 : API 지원 중단과 다른 점

SDK에는 ‘버전 지원 중단’과 ‘기능 지원 중단’이라는 두 가지 수준의 지원 중단이 있습니다. SDK 버전이 지원 중단되면 곧 모든 지원이 중단됩니다. 사용 중지된 SDK 버전에 대한 의존성으로 빌드하면 오류 또는 충돌이 발생할 수 있습니다. 그러므로 SDK 버전이 지원 중단되었다는 알림이 표시되면 시간을 내어 최신 버전(이상적으로는 사용 가능한 최신 버전)으로 마이그레이션하는 것이 좋습니다.

아래의 두 다이어그램은 기능 지원 중단의 두 단계를 보여줍니다. 먼저 더 이상 사용되지 않는 기능을 포함하지 않는 새로운 메인 버전을 소개합니다. 의존성에 이전 버전을 지정하여 더 이상 사용되지 않는 기능을 계속 사용할 수 있습니다. 그러나 코드에서 더 이상 사용되지 않는 기능의 사용을 제거하고 귀하의 의존성을 새로운 버전으로 업데이트 할 때까지 최신 버전에서 독점적으로 사용할 수 있는 기능을 사용할 수 없게 될 것입니다.

SDK에서 기능 B를 지원 중단하는 예입니다. v3.0에는 기능 B가 포함되어 있지 않으므로 v2는 기능 B의 마지막 지원 버전입니다. 기능 B를 계속 사용하려면 v2를 지정하십시오. v3.0으로 업그레이드하려면 코드에서 기능 B 사용을 제거하십시오.

 

더 이상 사용되지 않는 기능을 지원하는 마지막 버전이 자체적으로 폐기되면 해당 기능을 지원하는 버전이 더 이상 없으며 기능을 계속해서 사용할 수 있다고 보장 할 수 없습니다.

SDK 버전 폐기의 예입니다. v2는 기능 B의 마지막 지원 버전이며 더 이상 지원되지 않으므로 기능 B는 더 이상 사용할 수 없습니다. SDK에 따른 새 애플리케이션 빌드는 지원되는 버전으로 업그레이드해야하므로 기능 B 사용을 중지할 수 밖에 없습니다.

 

모든 활성 지원 중단을 나열하는 지원 중단 문서 에서 API 및 SDK의 지원 중단에 대한 자세한 설명을 통하여 더 알아보세요 .

SDK 의존성을 관리하는 방법

Google Maps Platform 모바일 SDK (Android용 지도 및 장소 SDK, iOS용 지도 및 장소 SDK)를 사용하는 개발자의 경우 의존성 버전을 관리하면 기한 전에 서둘러 수정하는 대신 앱 개발주기에 따라 지원 중단 마이그레이션 변경을 예약 할 수 있습니다.

모바일 SDK의 경우 앱 의존성에 정확한 버전 번호를 지정하는 것이 가장 좋습니다. 우리는 안드로이드를 위한 지도 SDK, 안드로이드를 위한 장소 SDK , iOS 용지도 SDK 및 iOS 용 장소 SDK 에 대한 SDK의 의존성을 관리하는 방법에 대한 문서를 추가하였습니다.

Maps JavaScript API는 모바일 SDK와 다릅니다. 버전은 분기 별 일정에 따라 릴리스되고 사용 중지되므로 기본적으로 항상 최신 버전 (v = 주간)을 로드하는 것이 좋습니다. 여기에서 정기적인 Maps JavaScript API 업데이트를 준비하는 방법에 대해 자세히 알아보세요 .

코드 업데이트 시기 선택

마지막 단계는 개발주기에서 코드 유지 관리를 정기적으로 예약하여 기술적 부채를 최소화하고 SDK의 최신 개선 사항을 즐길 수 있도록하는 것입니다. 릴리스 정보 및 필수 서비스 공지는 마이그레이션 가이드를 제시하거나 코드 업데이트에 필요한 노력을 최소화하기 위해 사용되지 않는 기능에 대한 해결 방법을 제공합니다.

위의 단계를 따르면 다음 번에 더 이상 사용되지 않는 기능 또는 버전에 대한 알림을 받을 때 최신 SDK 버전을 채택하기 위해 코드를 업데이트 할 시간을 언제하면 좋을 지 선택할 수 있으므로 안심할 수 있습니다. 안정적인 SDK 버전에 대해 모바일 앱 빌드가 예측 가능하게 됩니다. 웹 사이트에 영향을 줄 수 있는 변경 사항에 대한 JavaScript 릴리스 노트를 받으면 수행 할 작업(이전 버전 지정)이 무엇인 지 알 수 있습니다. 이 팁을 통해 코드 업데이트를 미리 계획 할 수 있기를 바랍니다. 더불어 지원 중단 알림이 스트레스를 유발하지 않을 것입니다 😄😃

SPH는 Google Maps, SuperMap, Maxar Technologies 등 다양한 케이스에 존재하는 다양한 제품군을 보유하고있는 고객의 사례에 꼭 맞는  무료 세미나 및 인적 컨설팅을 제공하고 있습니다. 각 케이스에 더욱 자세한 이야기를 나누고 싶으 시다면,  여기에서 문의 주시길 바라며, SPH에서 발행하는  GIS / 로케이션인텔리전스 관련 최신 소식 을 받아보고 싶으신 분들은  페이스북 페이지  또는  뉴스레터 를 구독 해 주시길 바랍니다. 감사합니다.