[CARTO업데이트]CARTO Builder 파헤치기

저번 포스팅에서 CARTO의 사명이 바뀐 것 외에도 제품의 새 라인업 등에 대한 업데이트 소식을 전해드렸는데요, 이번에는 CARTO 업데이트 내용 중에서 가장 핵심인 CARTO Builder 를 파헤쳐 보았습니다. CARTO의 사명과 더불어 기업의 비전을 담고 있는 CARTO Builder  과연 이전과는 무엇이 달라졌을까요?

CARTO의 비전을 담은 Builder: Democritizing Location Intelligence

 

<CARTO Builder – 에디터와 위젯이 합쳐진 형태입니다>

CARTO Builder는 CARTO의 기업 미션을 가장 잘 반영한 제품이라고 할 수 있습니다. CARTO는 모든 사람들이 로케이션 인텔리전스를 사용하는데 ‘민주적’으로(Democritizing location intelligence)사용할 수 있게 하는 것인데요, 이는 데이터 분석과 가공에 있어 비전문가도 쉽게 사용해  분석, 시각화 그리고 가치있는 인사이트를 찾아낼 수 있도록 하는 것입니다.

실제로 Builder는 개발자부터 IT 비전문가까지 사용할 수 있는 모두를 위한 Location Intelligence 분석툴입니다. Builder를 사용해 조직의 크기에 상관없이 데이터를 분석할 수 있고, 빅데이터를 쉽고 빠르게 비즈니스 의사 결정을 최적하하는데 도움을 줍니다. 

 Builder의 주요 특징

 

<인터렉티브 위젯을 바탕으로 분석력을 높일 수 있습니다>

정적인 에디터에서 동적인 위젯으로

CARTO Builder는 이전 CartoDB의 에디터와 Deep insights 가 합쳐진 형태인데요, 에디터에서 데이터를 가공해 지도에 표출해 주는 것이 가능했다면, Builder 는 이를 더 확장해 위젯과 예측 기능이 업그레이드 하였습니다.

터렉티브 위젯(상단 오른쪽)에서 마우스로 내가 보고 싶은 영역을 그래프에서 정보를 선택하면 바로 지도에 반영됩니다. 실시간 필터링과 개더링이 가능한 형태로 변화하여 필요한 정보만을 선택하여 볼 수 있습니다. 

<위젯 블락별 편집 가능>

더 쉬워진 커스터마이징

데이터셋의 순서를 손쉽게 바꾸고 결과는 위젯에 바로 반영이 됩니다. 지도 편집 단계는 이번 포스팅 가장 윗부분 이미지처럼 보여집니다. 아래의 이미지는 데이터셋 부분을 잘라낸 것인데요, 보시면 왼편에 필드값이 주어져 있습니다. 이 값을 드래그 앤 드랍으로 순서를 바꿀 수 있습니다. 이 결과는 오른편 위젯에 반영되는데요, 데이터 편집 단계에서 사용자가 강조하고 싶은 데이터의 순서를 바꿔서 원하는 조건으로 편집해 분석하고 고객과 지역을 이해하는 데 좀 더 편하게 사용할 수 있습니다.

 

금년 10월달에는 CARTO에 대한 세미나 및 풍성한 소식이 기다리고 있으니 문의사항이 있으시면 help@sphinfo.co.kr 로 연락 주시기 바랍니다.

[해외사례] CARTO로 데이터 저널리즘을 강화한 Le Télégramme

Le Télégramme은 1944년에 설립되어 프랑스에 본사를 두고있는 일간지입니다. 19개의 에디션과 약 220,000부의 발행부수를 자랑하는 역사깊은 매체인데요. 1996년에 시작한Le Télégramme의 웹사이트에는 월 200만명이 방문하고 있다고 합니다. 이번 포스팅에서는 Le Télégramme이 어떻게 CARTO를 이용하여 온라인 데이터 저널리즘을 강화할 수 있었는지 소개 해 드리겠습니다.

 

Le Telegramme의 로고

 

저널리즘의 변화와 새로운 기회

인터넷 뉴스가 발달하면서 기자들은 점점 기사에 멀티미디어를 활용하는 추세입니다. 종이신문의 기존 비즈니스 모델이 무너지면서 많은 언론 매체들이 구독자와 광고주를 유지/확대하기 위해 차별성 있는 기사를 만들려고 노력하고 있습니다. Le Télégramme은 데이터를 신속히 시각화하고, 더 많은 독자에게 다가가고, Le Télégramme 브랜드를 강화하고 온라인 플랫폼의 트래픽을 늘리고자 했습니다. 이를 위해 필요에 따라 쉽게 변경하고 코딩없이 편하게 활용할 수 있는 데이터 시각화를 원했습니다.

데이터 저널리즘을 빠르게

이 일환으로 Le Télégramme의 기자들은 2014년에서 2015년까지 정부의 보조금 데이터를 시각화하여 그 변화를 보여주고자 했습니다. >>컨텐츠 바로가기 이 프로젝트의 핵심은 소도시를 중심으로 프랑스의 자원이 어떻게 분배 되었는지 보여주는 것이었습니다. Le Télégramme은 데이터 처리에 CARTO의 강력한 API를 사용했습니다. CARTO의 API를 사용하면 모든 보유데이터를 정확하게 시각화하고 가장 유의미한 인사이트를 도출 할 수 있기 때문입니다. 그 결과, 평균 24시간인 일간지의 보도 사이클 내로 데이터 저널리스트와 엔지니어가 활용 할 수 있는 시각화 데이터를 심플하고 실용적인 솔루션을 기반으로 제공할 수 있었습니다.

 

Le Télégramme의 데이터 저널리즘 컨텐츠

 

데이터 시각화로 차별화된 컨텐츠 만들기

이렇게 CARTO의 힘은 개발자가 아니더라도 적절한 비용으로 CARTO의 백엔드(back-end) 기술을 누릴 수 있다는 점입니다. 이와 동시에 모든 데이터를 오픈 소스 코드와 CARTO.js로 필요에 따라 자유로운 방식으로 시각화 할 수 있다는 점이 바로 CARTO의 핵심 차별점 입니다. Le Télégramme은 CARTO를 사용해 독자들에게 경쟁 언론사에서는 찾아볼 수 없는 특별한 컨텐츠를 제공하고 Le Télégramme 웹사이트의 신뢰성을 제고할 수 있었습니다. Le Télégramme의 CARTO 기반 데이터 시각화 컨텐츠는 각 5천에서 1만 뷰를 기록했습니다. 인기 주제를 다루는 컨텐츠의 경우에는 훨씬 더 많은 관심을 끌었는데요. 앞 서 언급한 프랑스 정부가 각 지역정부에 제공하는 보조금의 분배율을 시각화한 컨텐츠는 자그마치 3만명의 독자가 읽었습니다.

프랑스 대표 일간지 Le Télégramme의 사례는 빠르게 변화하는 디지털 환경을 위기보단 기회로 활용한 멋진 예 입니다. CARTO는 시간과 비용이 많이 드는 백엔드 작업을 최대한 생략하고 빠르게 컨텐츠를 생성할 수 있도록 도와주어 컨텐츠 수명이 비교적 짧은 언론 및 미디어에 유용하게 활용 될 수 있습니다. Le Télégramme의 데이터 저널리즘 사례는 Le Télégramme Dataspot에서 더욱 다양하게 확인하실 수 있습니다.

 

“CARTO는 우리 신문으로 하여금 독자들에게 새로운 타입의 컨텐츠를 제공하고, 온라인 구독자들을 유지하고 또 새로운 독자들에게 다가갈 수 있도록 도와줬습니다. 인터랙티브 맵은 Le Télégramme의 디지털 컨텐츠에 진정한 가치를 더해주고 있습니다. 여러 기자들이 함께 한 프로젝트를 작업 할 수 있도록 해주어 타이트한 마감일을 지키면서도 양질의 컨텐츠를 발행하는 것을 가능하게 해줍니다.”

– Vincent Lastennet, Le Télégramme 대표 데이터 저널리스트 

 

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

[기술정보] Awareness API로 사용자 상황에 반응하는 개인맞춤형 앱 개발하기

반갑습니다, SPH입니다!

지난 포스팅 I/O 2016에서 발표한 Awareness API 기술 A to Z(이하 지난 포스팅)에서

사용자 Context의 종류와 Context 인지의 필요성
Awareness API 등장 배경 및 사용 방법 개요

에 대한 내용을 공유했습니다. 이번에는 지난 포스팅에서 했던 약속, Awareness API 출시 후 구체적인 활용방안과 사용 방법을 알려드리기 위해 Awareness API로 sample 앱을 만들었던 경험 및 실제 사용 방법에 대한 내용을 가지고 돌아왔습니다.

 

사용자 상황에 반응해서 맞춤 정보를 제공하는 개인맞춤형 앱 개발
수능을 본지 오래된 여러분에게 수험생 할인 이벤트 광고 알람이 왔다고 상상해 보세요! 온디맨드 시대에 스마트폰의 특정 애플리케이션이 내게 필요 없고 의미 없는 광고알람을 보내면, 그것만큼 스트레스받는 일도 없을 겁니다.

귀찮고 쓸모없는 Notification들

사용자의 위치, 움직임 등을 인지해서 사용자가 필요한 순간, 필요한 장소에 있을 때 서비스를 이용할 수 있도록 애플리케이션을 개발해야 합니다. Google Awareness API는 이를 위한 최선의 방법 중 하나입니다. GPS나 자이로센서 등, 사용자 행동 인지를 위해 필요한 센서 데이터를 목적에 맞게끔 제공해 주니까요. 한 가지 예를 들어보겠습니다.

 

 환자가 병원에서 업무를 본 후, 맞춤 보험 정보를 제공해주는 애플리케이션
최근 타 기업과 기술 논의 과정에서 한 가지 Sample 앱을 만들게 되었습니다. 이 앱은 사용자에게 교통사고가 났다고 가정하고, 운송수단을 이용해 병원으로 이동 후 병원 업무를 본다고 가정합니다. 병원 업무를 보고 나면, 이를 인지해서 최종적으로 알림을 주는 Sample 앱입니다.

사용자 행동과 위치를 파악하여, 필요한 순간 적절한 알림을 주는 애플리케이션

3~5초마다 GPS 신호를 읽어서 위의 앱을 구현한다면 의미 없이 배터리가 소모될 것이고, 최악의 경우 앱은 삭제될 것입니다. 또한, 이미지상의 프로세스는 간단해 보이나 실제로는 Geofencing API, Fused Location API, Detected Activity API 등 사용해야 할 것들이 많아, 복합적으로 이용할 때 고려해야 할 사항이 많습니다.

그러나 저희는 Awareness API를 이용하여 기존보다 더 빠르게, 코드는 더 심플하게 구현할 수 있었습니다. 여기서는,

  • 지하철, 구급차, 버스 등 운송수단을 이용 중인지 판단
  • 운송수단 이용을 중지한 상태인지 판단
  • 내 위치의 위도, 경도 값 받기
  • 내 위치가 설정해둔 특정 건물 근처에 있는지 판단

과 같은 사용자 행동 판단 필요 부분을 Awareness API로 해결하였습니다. Awesome! 한 가지 API로 Geofencing, Fused Location, Detected Activity 등 많은 API를 대체한 것입니다.

 

 여러분이 구상하는 앱에도 Awareness API가 필요한지 알아보세요!
Awareness API를 이용해 가능한 애플리케이션을 몇 개 더 생각해 보겠습니다. 예시에서 초록 색깔의 글씨는, 쉼표(comma) 기준으로 모두 Awareness API로 검출이 가능한 상황들입니다.

case

다양한 Awareness API 사용 예시들

어떠신가요? Awareness API가 여러분의 Application에 적용할 수 있다고 생각되거나, 사용 방법에 대해 더 자세히 알아볼 필요가 있으신가요? 그렇다면 Awareness API의 개요에 대해 상세히 설명되어 있는 ‘I/O 2016에서 발표한 Awareness API 기술 A to Z‘ 과, 쉽게 사용할 수 있도록 정리한 아래의 구현 방법 및 tip을 참고하시기 바랍니다.

 

Awareness API를 이용하기 위한 사전 세팅
다른 Google Android API와 마찬가지로, Awareness API를 사용하기 위해서는 몇 가지 세팅이 필요합니다.

1. Google Play services 사용 설정하기
안드로이드 스튜디오->프로젝트 생성-> build.gradle 에서 dependencies 에

compile ‘com.google.android.gms:play-services:9.4.0’

를 추가하고 Gradle Sync를 맞춰줍니다.

 

2. API 키 등록
console.developers.google.com에 접속하여 API Key를 발급받고, Awareness API 사용 설정합니다. 이후 안드로이드 스튜디오-> AndroidManifest.xml 파일에서 다음을 추가합니다.

<application>

<meta-data
android:name=”com.google.android.awareness.API_KEY”
android:value=”YOUR_API_KEY”/>
</application>

Awareness API으로 장소나 비콘 등의 값을 받기 위해서는 다음 내용도 추가해 줍니다.

<meta-data
android:name=”com.google.android.geo.API_KEY”
android:value=”YOUR_API_KEY” />

 

3. GoogleApiClient로 Awareness API 연결
실제 사용을 위해서 onCreate() 메소드 내에 다음과 같이 GoogleApiClient를 생성하고, Awareness API 사용 설정을 해 줍니다.

android.content.Context context;
GoogleApiClient client = new GoogleApiClient.Builder(context)
.addApi(Awareness.API)
.build();
client.connect();

이제 모든 사전 세팅이 끝났습니다. Awareness API 중에서도 어떤 센서 데이터를 이용하느냐 따라서 권한 설정이 필요할 수도 있는데요. 이 부분에 관해서는 여기서 따로 다루지 않겠습니다. 지난 포스팅에서 이미 언급했지만, Awareness API는 크게 SnapshotFence로 나누어서 사용합니다. Snapshot은 날씨, 위치와 같은 실제 값을 알 수 있게 해주며, Fence는 특정 시간 동안 특정 위치에 머물렀는지, 운전과 같은 특정 상황에 있는지를 검출해서 True, False로 알려줍니다.

Awareness API를 이용하기 위한 사전 세팅도 끝났으니, 지금부터는 Snapshot 과 Fence 사용 방법에 대해서 각각 알아보겠습니다.

 

Awareness API – Snapshot API 사용 방법

Snapshot 으로 필요한 데이터를 가져와보자
Snapshot API를 사용해서 위치, 장소, 비콘 상태, 사용자 행동(걷는 중, 뛰는 중, 자전거 타는 중, 운송수단 이용 중, 멈춤 등), 이어폰 연결 상태, 날씨 등의 값을 받아올 수 있습니다.

예를 들어, Snapshot API로 사용자 행동에 대해서 알고 싶다면, 다음과 같은 함수를 구현해서 사용할 수 있습니다.

private void printSnapshot() {
        Awareness.SnapshotApi.getDetectedActivity(mApiClient)
            .setResultCallback(new ResultCallback<DetectedActivityResult>() {
                @Override
                public void onResult(@NonNull DetectedActivityResult dar) {
                    ActivityRecognitionResult arr = dar.getActivityRecognitionResult();

                    DetectedActivity probableActivity = arr.getMostProbableActivity();

                    // Confidence is an int between 0 and 100.
                    int confidence = probableActivity.getConfidence();
                    String activityStr = probableActivity.toString();
                    Log.d("상태검출", "Activity: " + activityStr + ", Confidence: " + confidence + "/100");
                }
            });
}

이외에도 Awareness.SnapshotApi.get~의 형태로 위에서 언급한 상태들을 받아올 수 있습니다.

Snapshot API 응용 예, 사용자 위치 전송 애플리케이션
Snapshot API를 사용처를 생각해보면, 인적 자원을 Tracking 하는 앱 등을 만들 때 편리할 겁니다. 예를 들어 어떤 지역구의 매장을 관리하는 매니저의 동선을 파악할 수 있을 겁니다. Snapshot을 이용해 매니저의 위치와 매니저의 움직임을 쉽게 알 수 있으니까요.

 

Awareness API – Fence API 사용 방법
기존의 GeoFencing(지오펜싱)을 기억하시나요? 사용자가 특정 위치에 대한 바운더리에 들어갈 때, 머무를 때, 나올 때의 상태를 검출하는 것을 지오펜싱이라 합니다. Fence API는 GeoFencing의 확장 개념입니다. 기존 GeoFencing이 단순히 위치에 대한 바운더리만 Fence만 설정할 수 있었다면, Fence API는 사용자의 위치나 행동 상태, 스마트폰의 특정 상태(예를 들어 헤드폰을 꽂는다거나)와 같이 다양한 인지 신호에 대해 펜스를 설정할 수 있습니다. 설명을 위해 스마트폰에 헤드폰을 꽂았는지 여부를 예로 들겠습니다.

Fence 생성하기
먼저 이어폰이 꽂혔는지 여부에 대한 Awareness API 펜스를 만듭니다.

AwarenessFence headphoneFence = HeadphoneFence.during(HeadphoneState.PLUGGED_IN);

위의 소스코드에서는 헤드폰이 꽂혀 있는 상태를 펜스로 설정한 겁니다.

 

콜백을 받기 위한 Fence 등록하기
만들어진 headphoneFence를 등록하기 위해서 FenceApi.updateFences()메소드를 호출하고, ‘펜스 업데이트 요청’ 을 만들기 위해 FenceUpdateRequest.Builder() 를 사용합니다.

// Declare variable for PendingIntent
private PendingIntent mPendingIntent;

protected void registerFence(final String fenceKey, final AwarenessFence fence) {
        Awareness.FenceApi.updateFences(
        mGoogleApiClient,
        new FenceUpdateRequest.Builder()
        .addFence(fenceKey, fence, mPendingIntent)
        .build())
        .setResultCallback(new ResultCallback<Status>() {
            @Override
            public void onResult(@NonNull Status status) {
                if(status.isSuccess()) {
                    Log.i(TAG, "Fence was successfully registered.");
                    queryFence(fenceKey);
                } else {
                    Log.e(TAG, "Fence could not be registered: " + status);
                }
            }
        });
}

 

Fence 상황에 따른 콜백 구현하기
펜스를 등록하고 나면, 펜스가 트리거될 때(상태가 변할 때, 즉 값이 검출될 때) 응답할 수 있는 콜백을 구현해야 합니다. 지금은 헤드폰이 꽂혀있는지를 예로 들고 있으므로, 여기서 펜스의 트리거란 헤드폰이 꽂혀있는지 여부에 따라 True 나 False 같은 boolean 형태의 콜백을 받을 것입니다. 콜백 구현 방법은 브로드캐스트 리시버의 서브클래스를 만들어 인텐트를 처리하는 것인데요. 자세한 건 다음 소스코드로 설명하겠습니다.

// Declare variable for MyFenceReceiver class.
private MyFenceReceiver mMyFenceReceiver;

// Initialize fence variables in onCreate().
protected void onCreate(Bundle savedInstanceState) {
        ...
        Intent intent = new Intent(FENCE_RECEIVER_ACTION);
        mMyFenceReceiver = new MyFenceReceiver();
        registerReceiver(mMyFenceReceiver, new IntentFilter(FENCE_RECEIVER_ACTION));
        ...
        }

// Extend the BroadcastReceiver class.
public class MyFenceReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        FenceState fenceState = FenceState.extract(intent);

        if (TextUtils.equals(fenceState.getFenceKey(), "headphoneFence")) {
            switch(fenceState.getCurrentState()) {
                case FenceState.TRUE:
                    Log.i(TAG, "Headphones are plugged in.");
                    break;
                case FenceState.FALSE:
                    Log.i(TAG, "Headphones are NOT plugged in.");
                    break;
                case FenceState.UNKNOWN:
                    Log.i(TAG, "The headphone fence is in an unknown state.");
                    break;
            }
        }
    }
}

위의 코드는 브로드캐스트 리시버를 확장한 MyFenceReceiver 클래스를 보여줍니다. 이 클래스에서 Fence에서 발생되는 모든 인텐트를 처리하기 위해 BroadcastReceiver.onReceive() 콜백 메소드를 구현했습니다. onReceive()에서 Intent를 받게 되면, FenceState.extract() 메서드를 통해 Fence의 상태 콜백을 받을 수 있습니다.

 

Awareness API는 Place API와 함께할 때 더 큰 빛을 발한다

combination

Awareness API와 Place API를 결합하면 더 많은 것들이 가능하다.

지금까지 Awareness API 사용 방법에 대해 비교적 구체적으로 설명하였습니다. 개인적으로 Awareness API를 테스트해보며 느낀 것은, 활용할 때 Place API와 함께 사용하면 더 좋을 것 같다는 점입니다. Awareness API는 결국 사용자의 상황을 인지하는 것이고, 이를 추가적으로 더 활용하기 위해서는 Place API를 이용해 주변 검색을 통하여 정보를 알아낼 필요가 있기 때문입니다.

 

여전히 알고리즘과 UX 고려가 필요
추가로, sample app을 개발하고 테스트하며 개인적으로 느꼈던 내용을 공유하겠습니다.

happy-user-experience-design

Awareness API를 이용하더라도, 다양한 사용자의 상황을 제대로 인지하기 위해서는 잘 설계된 알고리즘이 필요할 것입니다. 예를 들어서 이동 중인 상태를 Awareness API로 검출하는 경우를 생각해 보겠습니다. 대중교통을 이용한다면, 사용자가 대중교통을 갈아타기 위해 걷는 상황이나 버스가 잠시 멈춘 상황 등을 예외처리하기 위한 알고리즘이 필요할 것입니다.

그런데 UX를 잘 파악할 수 있다면, 알고리즘 설계가 더 간단해지는 경우도 있는 것 같습니다. 예를 들어서 내 위치 주변 병원에 대해 지오펜싱을 설정해서, 병원 업무를 보았는지 여부를 판단할 때를 생각해 볼 수 있습니다. 개발자 입장에서는 한 장소 근처에 병원이 너무 많은 경우를 생각해서, 한 장소에 병원이 1개 있을 때와 2개 이상 일 때를 구분하여 두 개의 Flow를 작성할 수도 있을 겁니다. 하지만 사용자 입장에서 생각해보면 한 장소에 병원이 몇 개가 됐든 간에, 병원 업무를 완료했을 때 알림만 제대로 받으면 됩니다. 그렇다면 하나의 Flow에서 처리할 수 있는 방법도 있을 겁니다. 물론 어떤 병원인지 구분해야 한다면 얘기가 다르겠지만요.

지금까지 Awareness API 사용 방법과 테스트 경험을 공유 드렸습니다. 도움이 되셨길 바라며, Awareness API 사용에서 어려움이 있다거나 Awareness API와 Place API를 함께 쓰는 방안에 대한 더 자세한 방법 등, 기타 질문이 있으시면 언제든 support@sphinfo.co.kr로 문의하시기 바랍니다. 감사합니다.

[기술정보]Google Maps API for Android 16.08.01 릴리즈 내용

최신 Google Maps Android API의 릴리즈 노트 내용을 전달드립니다.

Google Maps Android API의 최신 버전은 다음과 같이 개발자들이 요청한 많은 기능들이 포함되었습니다.

카메라의 움직임을 새로운 ‘카메라’ 리스너를 통해 더 정확하게 추적할 수 있습니다.
*여기서 카메라란, 안드로이드 애플리케이션에 표시되는 Google Map 영역, 경계 안의 범위를 뜻합니다.
최대, 최소 줌 레벨을 설정할 수 있습니다.
위도,경도 경계 내에서 패닝 영역을 제한할 수 있습니다.
추가적으로, 새로운 마커 태그 속성을 이용하여 데이터 객체를 마커에 연결할 수 있게 되었습니다.

조금 더 자세히 설명드리겠습니다.

 

카메라 움직임 추적을 더욱 정확하게 
Google Map에 대한 가장 큰 요청은 개발자들이 문의한 다음의 내용이었습니다.

카메라 움직임을 추적하는 더 좋은 방법이 있는지?
사용자 제스처에 대한 카메라 움직임을 확인할 수 있는 방법
개발자가 카메라 움직임을 컨트롤 할 수 있는 방법

이제는 새롭게 바뀐 카메라 리스너를 통해서 이러한 것들을 지원합니다. 이제 애플리케이션을 개발할 때, 카메라 움직임의 시작과, 움직이는 상태, 그리고 움직임이 멈췄을 때의 정보를 받을 수 있게 되었습니다.

자세한 정보는 camera change events에 대한 개발자 가이드를, 그리고 사용자가 지도를 드래그하거나 라인을 그리는 등 제스처를 감지하는 방법은 Code Sample을 참조해주세요.

 

줌 제어, Panning과 Scrolling
애플리케이션 내에서 Google Map 을 사용할 때, 사용자가 Zoom in / Zoom out 이나 지도 내의 패닝 동작을 자유롭게 할 수 있도록 구현하고 싶을 수도 겁니다. 아니면, Zoom Level을 15~20 사이로 제한하기를 원한다거나 특정 위치로만 패닝 또는 스크롤링이 가능하게 구현하고 싶을 수도 있을 겁니다.

이제는 GoogleMap.setMinZoomPreference()GoogleMap.setMaxZoomPreference()를 이용해서 최소 줌 레벨과 최대 줌 레벨을 설정할 수 있게 되었습니다. 당연히 Tile Overlay될 여러분의 지도에도 적용됩니다.

게다가, GoogleMap.setLatLngBoundsForCameraTarget()을 이용해서 사용자가 특정 범위 안에서만 스크롤과 패닝이 가능하도록 특정 지도의 위도/경도를 중심(Center)으로 일정한 경계를 만들어 제한할 수도 있습니다. 여러분의 User가 여러분의 지도에서 특정 지역에만 머물게 하고 싶을 때 굉장히 유용하겠죠.

Pan and zoom limits on a map for Adelaide, a beautiful city in South Australia

코드 샘플처럼 지도 경계를 설정하는 방법을 알고싶다면, 개발자 가이드를 참조해주세요.

 

Marker tags
애플리케이션에서 지도의 특정 마커를 터치할 때, 마커가 변하면서 여러분의 데이터 정보를 보여주도록 하고 싶나요? 또는 마커에 우선 순위를 할당하고 싶으신가요? 새로운 마커 태그 속성을 활용하면, 여러분이 사용을 원하는 형태로 마커에 데이터 객체를 연결할 수 있습니다.

 


[세미나 후기] IoT 시대, 빅데이터 분석의 새로운 방법을 만나다

지난 9월 1일 CARTO 한국 공식 파트너 SPH에서는 IoT시대, 빅데이터 분석의 새로운 방법 CARTO 세미나를 성황리에 개최했습니다! 이번 세미나는 2016 스마트 국토 엑스포와 함께해서 더욱 특별했는데요. CARTO APAC 총괄 매니저 Fernando Carrasco가 세미나를 위해 한국을 방문해 CARTO의 이야기를 직접 들려주어서 더욱 의미있는 자리었습니다.

<양재 더케이호텔의 세미나 행사장>

이번 세미나에 대한 관심은 감사하게도 폭발적이었습니다. 2시간 가량의 비교적 소규모 세미나임에도 불구하고 많은 분들이 신청해주시고 참석해주셨는데요, 자리가 부족해 SPH 멤버들이 모두 서있어야 하는 초유의(!) 사태도 벌어졌습니다. 특히 현장등록도 30명 넘게 해 주셔서 IoT시대의 핵심이라고 할 수 있는 빅데이터 분석의 효과적인 방법에 대한 궁금증이 상당하다는 사실을 체감할 수 있었습니다.

<발표장을 가득 메운 참석자들>

 

1. CARTO가 직접 들려주는 Location Intelligence의 과거, 현재 그리고 미래

< “A Big Deep Dive into Big Data and Location Intelligence” 페르난도 카라스코, APAC 총괄 매니저, CARTO>

첫 발표는 평소 SPH와 긴밀히 소통하며 CARTO와 SPH의 연결고리가 역할을 하고 있는 페르난도 카라스코 APAC 총괄매니저가 맡았습니다. 최근 CARTO는 대대적인 업데이트와 함께 브랜드 아이덴티티까지 확 변신했는데요. >>CARTO 업데이트 소식 CARTO가 생각하는 로케이션 인텔리전스(location intelligence, LI)의 과거와 현재, 그리고 미래 비전을 공유했습니다. 콜레라 발생지역을 지도에 일일히 표시해 콜레라의 전염 경로를 파악했던 최초의 LI 사례부터 실시간 메가 빅데이터를 높은 퍼포먼스로 처리하고 지도에 올려 ‘리얼타임 인사이트’를 도출할 수 있도록 만들겠다는 CARTO의 야심까지. 카라스코 총괄매니저의 발표를 들으니 CARTO가 그리는 로케이션 인텔리전스의 미래가 더욱 기대되었습니다.

 

2. 국내에서도 벌써 로케이션 인텔리전스가 활용되고 있다!

<로케이션 인텔리전스의 활용사례를 소개하는 SPH 김선경 연구소장>

다음으로 SPH R&D팀의 김선경 연구소장과 박재형 부장의 발표가 이어졌습니다. 카라스코 총괄매니저가 CARTO의 철학과 비전을 소개했다면, SPH에서는 CARTO의 가치가 국내 기업의 실무진들에게 더욱 피부로 와 닿을 수 있도록 실제 국내 사례를 소개하고 직접 시연하는 시간을 가졌습니다. 사진에서 보시는 것처럼, 김선경 연구소장은 최근 엄청난 열풍을 일으키고 있는 PoketmonGo를 언급하며 발표를 열였습니다. “로케이션 인텔리전스를 게임에 적용한다면 숲, 늪, 바다 등 게임속 자연 환경에 따라 출몰하는 포켓몬의 종류와 빈도를 사실적으로 설정해 더욱 풍부한 게임 환경을 제공할 수 있을 것이다”라며 청중의 관심을 모았습니다.

 

3. 위치기반 빅데이터 분석, 나도 할 수 있을까?

<CARTO의 데이터 시각화 과정을 시연하는 SPH 박재형 부장>

김선경 연구소장이 공공기관, 통신사, 글로벌 화장품 브랜드, 선박 기업 등 CARTO의 실제 적용 사례와 그 배경을 설명 한 뒤, 박재형 부장이 바톤을 이어받아 CARTO에서 데이터를 시각화 하는 방법과 팁을 발표했습니다. 빅데이터 분석의 중요성은 이제 충분히 강조되어 이미 많은 기업 담당자들이 충분히 숙지하고 있는 사실인데요. 데이터 전문가의 도움 없이, 복잡한 코딩이나 툴 없이도 회사의 구성원 누구나 데이터를 분석하고 (심지어 예쁘게) 시각화 할 수 있다는 CARTO의 힘을 직접 시연을 통해 보여주었습니다. 이번 발표내용을 박재형 부장이 더한 짧은 한마디로 요약한다면 이렇습니다. “편하게 올리고 편하게 쓰세요.” 

 

4. 궁금하다, 로케이션 인텔리전스!

<CARTO와 로케이션 인텔리전스 시장의 전망을 설명하는 SPH 소광진 대표>

마지막으로 SPH 소광진 대표가 CARTO와 LI의 전망에 대해 발표하며 세미나를 마무리했습니다. 데이터 분석툴, GIS, 위치기반 서비스를 아우르는 CARTO의 현재 시장에서의 위치와, GIS, 나아가 로케이션 인텔리전스를 다루는 전문 컨설팅 기업으로서 SPH가 제공할 수 있는 가치를 소개했습니다.

 

이번 세미나에서 SPH는 참석자들께서 보여주신 관심과 열정에 힘을 얻어 갈 수 있었습니다. 참석자 분들께서 보내주신 소중한 의견을 반영하여 앞으로도 유익한 정보와 서비스를 제공하는 SPH가 되겠습니다. 이번 세미나에서 발표된 자료를 참고하고 싶으시다면 여기에서 다운로드 받으실 수 있습니다.

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

2016 스마트 국토 엑스포 전시회

2016 스마트 국토 엑스포가 8월 31일부터 9월 2일까지 The-K 호텔에서 열렸습니다.
저희도 이번 엑스포에서 CARTO를 이용한 ‘Location Intelligence’라는 주제로 컨퍼런스를 열었고, 많은 분들이 참석해서 자리를 빛내주셨습니다. >Location Intelligence 포스팅<

오후부터 진행되었던 SPH 컨퍼런스가 시작하기 전에, 잠시 시간을 내어 전시회도 둘러보고 왔는데요. 참석하지 못해서 아쉬웠던 분들을 위해, 그리고 참석했던 기억을 되새기고자 하는 분들을 위해! 금 같은 시간을 쪼개어 이번 포스팅을 준비해 보았습니다.

 

공간정보는 무엇이며 어떻게 구성되고 수집될까?

공간정보라 함은 지구상에 있는 자연 환경에서부터 사람, 건물까지의 모든 정보를 포함합니다. 전시회에서도 이런 정보를 어떻게 수집하고 표현하는지 자세히 설명되어 있었습니다.

타원형 지구를 지도로 평면화시키는 작업 – 투영
둥근 지구를 사람이 보기 쉽게 평면화하는 작업을 투영이라고 부릅니다. 지구를 평면화해서 지도로 만들고 나면, 그 위에 필요한 정보들(건물, 자동차 등)을 표현하기가 더 쉬워지겠죠?

<여러가지 투영법>

<여러가지 투영법>

지도 위의 표시되는 정보를 책임진다! 정밀전자지도 정보수집차량
지도 위에 있는 정보들은 어떻게 수집될까요? 여러 가지 방법이 있겠지만, 그 중 하나가 정보수집차량을 이용하는 것이라고 하네요. 정보수집차량에 대해서 개인적으로도 관심이 많았는데요. 거리 감지기, 위치 측정기 등 다양한 센서가 설치 되어 있는 걸 확인할 수 있었습니다.

20160901_115952

<영화 트랜스포머의 자동차 로봇처럼 멋지게 생긴 정보수집차량>

20160901_121318

<정보수집차량에 내장되어 있는 다양한 센서 및 모듈들>

정밀도는 내가 책임진다! 첨단측량 및 계측 제품
지도의 정밀도에는 발달된 측량 기술 및 측량 제품들이 한 몫 했죠. ‘라이카 지오시스템즈 코리아’ 직원으로부터 기술이 어떻게 진화해왔는지 설명을 들었습니다. 자세히 기억나지는 않지만, 최근에는 드론 기술이 대중화되면서 드론을 이용한 측량 및 계측 제품이 많이 나오고 있다고 합니다.

20160901_124304

<라이카 지오시스템즈 코리아의 다양한 측량 제품들>

 

공간정보, 어떻게 활용될까?

위에서 공간 정보가 어떻게 만들어지고, 수집되는지 둘러보았습니다. 자연스럽게 이러한 공간정보가 어떻게 활용되고 있는지 궁금해지네요.

국내 포털 선두주자, 네이버와 카카오의 공간 정보 사업
대표적인 포털 사이트죠. 네이버와 카카오도 이번 국토 엑스포에 각각 네이버 지도와 카카오맵, 카카오버스, 카카오지하철을 가지고 전시회에 참여하였습니다. 높은 사용자 트래픽을 기반으로 경쟁하는 두 회사인만큼, 비교 분석을 안 해볼 수가 없었습니다!

지도앱 하나로 한번에! 네이버 지도
저도 항상 활용하는 모바일 애플리케이션 ‘네이버 지도’. 길찾기부터 네비게이션 기능, 주소 검색 및 내 위치 확인 까지 개인이 필요한 모든 공간 정보를 쉽게 활용할 수 있도록 해주는 애플리케이션이 바로 ‘네이버 지도’입니다.

20160901_115122 20160901_123636

다음 지도, 국내 최초 모바일 3D 지도
카카오는 네이버와 달리 다음지도, 카카오버스, 카카오메트로 등 목적에 맞게 특화된 애플리케이션을 각각 따로 서비스합니다. 몰랐던 사실이 하나 있는데, 국내 최초 모바일 3D 지도가 카카오의 지도라고 합니다.

20160901_123431

즐겨 사용하던 지하철 네비게이션, 카카오 지하철로 거듭나다
제가 정말 자주 사용하던 애플리케이션 중 ‘지하철 네비게이션’이라는 애플리케이션이 있었습니다. 지금은 카카오에 인수되어서 새롭게 서비스되고 있습니다. 기존의 유저들을 이탈시키지 않으면서, 카카오가 하려는 서비스를 잘 녹이는게 관건으로 보입니다.

차세대 스마트카 자율주행차 체험
자율주행차 하면 역시 무엇보다도 중요한 것이 정밀한 공간정보 확보와 활용이겠죠. 전시회에는 VR 환경을 통하여 차세대 자율주행차를 체험해볼 수 있는 공간도 있었습니다. 인공지능 자동차가 스스로 자가진단하고, 원하는 목적지를 말하면 교통 상황까지 고려하여 자율주행하는 컨셉이었는데요. 자율주행차 상용화가 멀지 않은 것만큼은 확실한 것 같습니다.

20160901_120150

<꿀잼! 차세대 스마트카 자율주행차 체험>

서울시, IoT 도시 조성과 서울시 상수도 GIS
대한민국의 수도이자 최대 도시인 서울특별시도 진행 중인 GIS 사업들을 소개하기 위하여 이번 전시회에 참여하였습니다. ‘세계에서 사물인터넷을 가장 잘 활용하는 도시’라는 야심찬 계획이 마음에 드네요. 서울시 상수도 GIS는 제가 하고 있는 업무와도 비슷한 부분이 있어서 특히 관심 있게 보았습니다.

20160901_123912 20160901_124040

한국토지주택공사의 스마트 홈
한국토지주택공사의 ‘스마트 홈’ 전시관도 둘러보았습니다. 실내 공간 정보를 어떻게 수집하고, 어떤 아이디어로 활용하는지 흥미롭게 보았는데요. 개인적으로는 스마트 홈 분야는 아직 선두 주자가 없다고 느껴져서, 앞으로 어떤 기업이 스마트 홈 분야를 선도할지 궁금합니다.

20160901_120105

<LH, 스마트한 세상 스마트한 생활>

 

정리 – 공간정보가 곧 국가경쟁력
‘공간정보가 곧 국가경쟁력’. 공간정보의 수집과 활용 사례까지, 전시회를 둘러보면서 공간정보산업협회(구 대한측량협회)의 이 문구가 가장 먼저 떠올랐습니다. 맞습니다. 공간정보가 곧 하나의 경쟁력인 시대입니다. 공간정보는 사물인터넷, 빅데이터, 첨단로봇, 3D 프린터, 자율주행자동차 등과 결합하여 스마트홈과 지능형 시설관리, 자연재해 예방과 기후변화 대처, 국민 안전과 범죄 예방 등 광범위하게 기여하고 있습니다. SPH도 공간정보와 같은 빅데이터를 다루는 GIS 컨설팅 업체로서 이러한 산업에 기여하고 있죠. 참 뿌듯합니다. ^^

KakaoTalk_Photo_2016-09-12-17-47-24

<2016 스마트 국토 엑스포 안내 책자, 공간정보가 곧 국가경쟁력>

이번 스마트 국토 엑스포 전시회는 다양한 분야에서 공간정보가 어떻게 활용되고 있는지 그 중요성을 확인해볼 수 있는 자리였다고 요약해 볼 수 있겠습니다.

 

마치며
국토 엑스포 전시관이라고 해서 딱딱한 지도만 상상한 것은 오산이었습니다. 국토교통부의 7대 신사업도 직접 확인해볼 수 있었고, 무엇보다도 최신 공간정보기술과 최근의 공간정보 산업들을 직접 씹고 뜯고 맛보고 즐기며 전반적인 글로벌 공간 산업의 동향을 이해하는데 도움이 되었습니다. 이번 국토 엑스포에서 SPH는 CARTO를 소개하는 컨퍼런스와 포스팅을 통해 여러분을 찾아뵈었는데요. 내년 국토 엑스포에서는 SPH의 솔루션, KAGOS를 가지고 전시를 통해서 다시 한 번 찾아뵐 수 있으면 좋겠습니다. 지금까지 스마트 국토 엑스포 2016 참가 후기였습니다.