[세미나 후기]M2M 물류 시대, 구글 지도로 답을 찾아보세요!

2016년 처음 열리는 구글 세미나! 역대 최고 인원이 몰리며 물류 관제에 대한 한국 시장의 뜨거운 반응을 엿볼 수 있었습니다. 하여  ‘오전/ 오후’로 하루 두 번의 세미나로 나눠 개최하게 되었습니다. 스마트 물류 시대, Google Maps 를 활용해  어떻게 스마트해질 수 있는지 전달하였던 뜨거웠던 세미나 현장 함께 가시죠!

Google for Work, 어떤 기관인가요?

Google은 우리가 일상에서 사용하는 Search, Gmail 등의 기본적인 기능에, 기업이 사용할 수 있는 심화 기능, SLA(서비스 보장) 등의 가치를 더해 기업이 활용할 수 있는 제품으로서 제공하고 있습니다. 그리고, 이것은 싱가폴에 있는 Google for Work 에서 담당하고 있습니다.

Google for Work 북아시아지역 책임자인 Gwladys의 웰컴 인사와 더불어 Google for Work의 유일한 한국거주 담당자 서본양 매니저의 Google Maps에 대한 소개로 세미나가 시작되었습니다. Google Maps의 방향성 및 전세계적인 위상을 확인할 수 있었던 자리였습니다.

<Google for Work 북아시아지역 Maps 담당 매니저의 웰컴 인사>

 

<Google for Work 서본양 매니저의 프레젠테이션>

SPH, 현장의 이야기를 담다

한국 내 Google Maps 파트너이자 5년 넘게 를 판매하고 GIS 업계에서 15년이 넘는 그야말로 ‘베테랑’들의 발표가 이어졌습니다. 영업 현장과 기술 개발에서 접했던 Google Maps의 불만과 이를 해결해 왔었던 SPH의 노하우와 경험에 대해 발표가 시작되었습니다. 긴 시간동안 이어진 발표였지만 청중들의 반응은 오전에도 오후에도 뜨거웠습니다.

<Google Maps API의 최신 동향 및 고객사례, SPH 노상철 팀장>

 

<스마트 물류 시대의 Google Maps API의 활용, SPH 김선경 연구소장>

 

Hyundai U&I, 현장 경험과 활용 방안을 이야기하다

마지막으로 현재 SPH와 함께 프로젝트를 진행하고 있는 현대유엔아이 김상용 차장의 발표가 이어졌습니다. 풍부한 자료와 귀에 쏙쏙 들어오는 설명, 그리고 스마트 물류라는 세미나 취지에 알맞는 현장 경험까지. 세 박자가 어우러진 멋진 설명이었습니다.



<글로벌 육해상 관제에서 사용되는 M2M 기술과 실제 사례, 현대 U&I 김상용 차장>

스마트 물류시대. 어떤 솔루션으로 자산 관리(Asset Tracking)을 하고 계신가요? 이번 구글 세미나에서는 이에 대한 논의와 더불어 솔루션을 전해드리고자  현장 전문가들을 모시고 이야기를 들어 보았습니다. 더욱 새로운 내용으로 다음 세미나 때 뵙겠습니다.
>> 세미나 자료 신청하기

[기술 정보]편리한 지도 검색 모바일 앱 개발, 새로운 자동 완성 위젯으로!

2015년 12월 17일, 개발자 뿐만 아니라 사용자 입장에서도 더 쉽고 편리한, 구글 맵 자동 완성 위젯(Autocomplete Widget)이 발표되었습니다. 1. 적은 양의 코드로 쉽게 개발할 수 있고, 2. 적은 입력으로도 쉽게 사용자가 원하는 구글 맵 정보로 안내하는 구글의 모바일 용 자동 완성 위젯! 지금부터 상세히 소개해 드리겠습니다.

Full screen autocomplete widget Overlay autocomplete widget

 

자동 완성 위젯의 장점

이 글을 읽고 있는 여러분은 자동 완성이라는 단어를 보자마자 쉽게 이런 의문을 가질 수도 있을 겁니다.

“원래 있었던 기능 아니야?!”

맞습니다! 저희 SPH에서도 지난 포스팅에서 이미 구글의 자동 완성 기능을 소개한 바 있죠. 하지만 이번에 소개해드리는 자동 완성 위젯은 더 발전된 형태입니다.

첫째, 개발자 입장에서 사용법이 더 간단해졌어요. (코드가 줄었단 의미입니다.)
둘째, UX를 고려한, 두 가지 형태의 위젯으로 제공돼요. (간단히 모드만 변경하면 끝!)
셋째, 구글의 노하우를 바탕으로, 사용자는 이전보다 적은 타이핑으로 원하는 구글 맵 정보에 더 쉽고 빠르게 도달할 수 있습니다.

 

사용해보기

어떤 장점이 있는지 알게 됐으니, 이제는 사용 방법을 알아보겠습니다.

-Android :
먼저 안드로이드 개발 환경에서의 사용 방법입니다.


Step 1. Fragment를 사용할 Activity Layout XML 파일에 추가합니다.

<fragment
  android:id="@+id/place_autocomplete_fragment"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
  />

Step 2. Activity의 onCreate() method에 이벤트 리스너를 추가합니다.

// 
PlaceAutocompleteFragment fragment = (PlaceAutocompleteFragment)
    getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

fragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
   @Override
   public void onPlaceSelected(Place place) { // Handle the selected Place
   }
   @Override
   public void onError(Status status) { // Handle the error
   }

Step3. 자동 완성 위젯을 호출하기 위해서 intent를 생성합니다.

try {
   Intent intent =
            new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
           .build(this);
   startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE);
} catch (GooglePlayServicesRepairableException e) {
   GooglePlayServicesUtil
           .getErrorDialog(e.getConnectionStatusCode(), getActivity(), 0);
} catch (GooglePlayServicesNotAvailableException e) {
   // Handle the exception
}

 

-iOS:


Objective-C. 자동완성 대리자(delegate)를 구현(implement)합니다.

@interface MyViewController () 
@end

@implementation ViewController
.
.
.
- (IBAction)onLaunchClicked:(id)sender {
  // Present the Autocomplete view controller when the button is pressed.
  GMSAutocompleteViewController *acController = [[GMSAutocompleteViewController alloc] init];
  acController.delegate = self;
  [self presentViewController:acController animated:YES completion:nil];
}

- (void)viewController:(GMSAutocompleteViewController *)viewController
    didAutocompleteWithPlace:(GMSPlace *)place {
  // The user has selected a place.
  [self dismissViewControllerAnimated:YES completion:nil];
}

- (void)viewController:(GMSAutocompleteViewController *)viewController
    didAutocompleteWithError:(NSError *)error {
  [self dismissViewControllerAnimated:YES completion:nil];
}

// User pressed cancel button.
- (void)wasCancelled:(GMSAutocompleteViewController *)viewController {
  [self dismissViewControllerAnimated:YES completion:nil];
}

@end

Swift.

import UIKit
import GoogleMaps

class MyViewController: UIViewController {
    
    @IBAction func onLaunchClicked(sender: AnyObject) {
        let acController = GMSAutocompleteViewController()
        acController.delegate = self
        self.presentViewController(acController, animated: true, completion: nil)
    }
}

extension MyViewController: GMSAutocompleteViewControllerDelegate {
    
    func viewController(viewController: GMSAutocompleteViewController!, didAutocompleteWithPlace place: GMSPlace!) {
        // The user has selected a place.
        self.dismissViewControllerAnimated(true, completion: nil)
    }
    
    func viewController(viewController: GMSAutocompleteViewController!, didAutocompleteWithError error: NSError!) {
        self.dismissViewControllerAnimated(true, completion: nil)
    }
    
    func wasCancelled(viewController: GMSAutocompleteViewController!) {
        self.dismissViewControllerAnimated(true, completion: nil)
    }
}

 

사용자의 편의성을 제공하는 완벽한 지도 정보 앱을 개발하려는 분들에게, 이제 자동 완성 위젯이 자꾸만 손이 가는 새우깡처럼 또 하나의 즐거운 선택지가 되어 줄 수 있을 것 같습니다 .

글을 통해 자동 완성 위젯에 대해 더 궁금해지셨습니까? 혹은 구현해보고 싶은 열정이 불타오르시나요? 개발 문서와 code samples 를 참조하시길 바라며, 저는 SPH와 GIS에 대한 새로운 소식을 가지고 다시 찾아뵙겠습니다! 지금까지 SPH 오동환이었습니다. ^^

*이 포스팅의 전체 내용은 Google Geo Developers Blog 를 참조하였습니다.

이제 CartoDB와 Nutiteq SDK를 활용해 모바일 애플리케이션을 개발해보세요.

CartoDB의 강력한 지도 관련 기술과 모바일 지도 개발 도구인 Nutiteq SDK의 만남으로, Android, iOS, Windows Phone 등 어떤 모바일 플랫폼에서도 사용자에게 최적화된 지도 Application 개발이 가능해졌습니다! 조금 더 자세한 사항들을 영상을 함께 보고 확인해보도록 하겠습니다.

 


<CartoDB & Nutiteq from CartoDB on Vimeo>

 

모든 Device 지원

 영상에서 본 것처럼, 최근 CartoDB가 Nutiteq을 인수함에 따라 Web 뿐만 아니라 다양한 플랫폼에서 CartoDB 기능을 사용할 수 있게 되었습니다. Nutiteq SDK가 안드로이드 개발을 위한 JAVA, iOS 개발을 위한 Objective-C와 Swift, 윈도우 폰 앱 개발을 위한 C#(.Net) 등 모든 주요 모바일 플랫폼에 대한 개발 언어 SDK를 지원하기 때문이죠.  JavaScript를 이용한 웹 앱 뿐만 아니라 모바일에서도 최적화한 애플리케이션을 개발할 수 있으므로, 거의 모든 장치에서 CartoDB를 이용해 사용자가 원하는 형태의 애플리케이션을 만들 수 있다고 볼 수 있겠네요.

 

Offline 사용 및 Routing

 사전에 다운로드 받은 map data를 기본적으로 지원되는 vector 및 raster 기반의 배경지도 위에서 사용할 수 있기 때문에, 오프라인 용으로 애플리케이션을 만들 수 있습니다. 또한 CartoDB가 보유한 다양한 국가의 노선 정보를 가지고 길 안내와 같은 네비게이션 기능을 이용할 수 있습니다.

 

사용 방법

  Nutiteq SDK를 실제로 테스트 해보았습니다. 아래 이미지는 Nutiteq SDK와 CartoDB를 이용해서 지도를 띄워주는 간단한 안드로이드 애플리케이션을 만들 수 있는 코드 샘플입니다.

스크린샷 2016-03-02 오후 6.38.00<Nutiteq에서 제공하는 Code Sample>

 소스 코드에서, 라이센스 키를 이용해서 MapView 객체를 생성하고, 스타일과 baseLayer를 설정하여 mapView를 띄우는 간단한 단계를 거쳐서 지도를 띄울 수 있음을 확인할 수 있습니다. 마지막으로, 안드로이드 폰에서 실제로 실행된 화면을 보시겠습니다.

스크린샷 2016-03-02 오후 7.17.46

<실제 안드로이드 폰에서 실행시켜본 화면. 참조 – Nutiteq Sample Apps>

 

Nutiteq에 대해 더 알아보고 싶어지셨습니까? CartoDB Blog의 ‘ Welcome Nutiteq to the CartoDB family!’ 기사와 nutiteq 에서 더 자세한 정보를 알아보시고, 추가적인 문의사항 혹은 Pro Plan이나 Enterprise Plan에 대한 정보가 필요하시면 CartoDB Premier 파트너사인 (주)SPH에게 문의해 주시기 바랍니다.