[CARTO] CARTO에서 Mapbox 벡터 타일을 지도와 위치 앱에 사용하기

 

벡터 타일은 빠르게 매끄러운 대화형 환경을 만들어야하는 지도나 장소 애플리케이션의 구성 요소입니다. 많은 공간 데이터를 분석하고 시각화 할 때, 정보를 처리하고 벡터 타일을 빠르게 배치할 유연한 플랫폼이 필요합니다.

최근까지만 해도, 대부분의 웹 지도들은 래스터 타일과 작은 정사각형 지역을 표시하는 이미지들 (보통 PNG), 그리고 그 부분의 데이터 레이어들로 이루어졌습니다. 도로, 건물 등의 데이터를 포함하고 있는 백지도가 바로 그런 지도입니다.

벡터 타일은 벡터 데이터를 만들고, 그 데이터는 주소나 관심지역정보(POI)와 같은 지오메트리와 메타데이터를 포함하고 있습니다.

많은 벡터 타일 형식이 존재하지만, Mapbox  Mapbox Vector Tile (MVT) 함께 시장을 선도하고 있습니다.

 

벡터 타일은 이미지 타일과 비교했을 때, 몇가지 중요한 장점을 지니고 있습니다.

 

스타일링 능력: 스타일링은 서버 측이 아닌 클라이언트 측에서 이루어지기 때문에, 다이나믹한 스타일링이 가능한 애플리케이션은 훨씬 더 많은 유연성을 필요로 합니다. 백지도와 데이터 레이어에서 모두 가능합니다.

효율성: 벡터 타일은 이미지 타일에 비해서 데이터를 더 효율적으로 전송할 수 있습니다. 다른 줌 레벨에서 데이터를 재사용할 수 있으며, 서버에 많은 데이터를 요청하지 않아도 됩니다.

상호작용: 데이터가 렌더링을 위해 브라우저로 보내지기 때문에, 애플리케이션은 서버를 호출하지 않고 데이터와 상호작용할 수 있습니다. 이는 더 풍부한 필터링, 스타일링, 그리고 전체적인 상호작용을 가능하게 합니다.

WebGL 렌더링: WebGL과 벡터 타일을 함께 이용함으로써, 고해상도의 매끄러운 줌, 더 스마트한 라벨 위치 선정, 그리고 백지도와 데이터 레이어 간의 상호작용이 더 원활해졌습니다.

 

벡터 타일은 로케이션 인텔리전스 앱을 사용할 때 더 나은 사용자 경험을 제공하는 웹 맵핑의 미래입니다.

 

벡터 타일은 2년 전부터 우리 CARTO Mobile SDK를 포함하여, 백지도 렌더링에 널리 쓰이고 있었습니다. 하지만 데이터 레이어를 미리 만들기 위해서는 다른 솔루션을 쓸 수 밖에 없었습니다. 그 문제를 많은 사용자들에게서 들어왔고, 이제야 그것을 바꿀 수 있게 되었습니다.

 

이제, 우리는 CARTO Engine 위한  Mapbox Vector Tile 제공할 있게 되었습니다.

 

CARTO 오랫동안 동적 벡터 지원 (SQL API  Torque 통한 GeoJSON 형태로) 해왔지만, 기능을 모든 CARTO Engine 사용자들에게 확장할 있게 되었습니다. CARTO Engine Mapbox Vector Tile 합침으로써, 사용자들은 기술들을 우리 API 적용시킬 있습니다. CARTO에서 바로 벡터 타일을 불러오는 예시를 확인해보세요.

 

MVT CARTO에 불러와, 당신의 로케이션 인텔리전스 애플리케이션을 다음 레벨로 올릴 수 있습니다.

 

사전 렌더링 없이, SQL에서 실시간 벡터 타일 불러오기

 

실시간으로 분석하고 시각화 할 동적 지도를 만드는 가장 효과적인 방법은 데이터 소스를 가지고 직접 작업하는 것입니다.

대부분의 벡터 타일은 웹 맵핑에 쓰이기 전에 동적 타일로 데스크탑 소프트웨어에 사전 렌더링 되어야합니다. 이 부가적인 과정은 두가지 단계를 거칩니다.

  1. 전통적인 업체들을 통한 비싼 소프트웨어를 필요로 합니다. 데스크탑과 서버 제품 사이에 3개의 제품까지 필요할 수 있습니다.
  2. 비즈니스 문제들을 해결할 때, 실시간 데이터를 바꾸거나 변수를 바꾸는 것이 어렵습니다. 이 때문에 만들 수 있는 로케이션 인텔리전스 앱의 종류는 제한될 수 밖에 없습니다.

그래서 저희는 벡터 타일 패키지를 만드는 대신에, 하나의 플랫폼의 SQL에서 이미 만들어진 벡터 타일을 제공합니다.

CARTO MVT는 요청할 때마다 데이터 소스에서 직접적으로 벡터 데이터를 불러올 수 있습니다. 사용자들은 새로운 벡터 타일을 불러오기 위해 SQL을 쓸 수 있으며, 이는 개발자들이 필터를 적용하고, 변환하고, 공간 분석을 시행할 때 엄청난 유연성을 제공합니다.

CARTO의 지리공간 백엔드는 애플리케이션 배치의 복잡함을 줄이고, 추가적인 타일링 소프트웨어나 재() 렌더링 작업이 필요 없습니다.

데모 MVT 만들어진 PostGIS 이용하여 어떤 방식으로 데이터가 전송되고 분석되는지 보여줍니다. 어떻게 필터가 있는 벡터 타일을 요청하고 Buffer 적용하는지 확인해보세요!

 

 

우리의 모든 지도가 그러하듯이, 생성된 타일은 빠른 반복 렌더링과 무효화를 위해 글로벌 CDN(Content Delivery Network) 캐시에 저장됩니다. 우리는 새로운 데이터 요청이 들어올 때 백엔드의 모든 것을 자동으로 관리하기 때문에, 서버, 타일링, 확장성에 대해 걱정할 필요가 없습니다.

추가적으로, 우리의 Maps API는 다수의 데이터 소스 요청을 처리할 수 있으며, 중첩 레이어를 하나의 타일 요청으로 통합할 수 있습니다. 이는 서버에 호출을 적게 할 수 있다는 뜻이며, 개발자에게 더 성능이 뛰어나고 유연한 환경을 제공할 수 있습니다.

 

 

많은 맵핑 라이브러리에 대한 유연성과 지원

 

벡터 타일은 서버와는 반대로, 컴퓨터나 모바일 기기의 클라이언트 사이드에 생성됩니다. 이는 Mapbox Vector Tile을 지원해줄 수 있는 클라이언트 사이드 렌더링 엔진이 필요하다는 뜻입니다. 가장 확실한 선택은 MapboxGL이지만, OpenLayers with WebGL이나, Leaflet을 계속 사용해도 됩니다.

우리는 사용자들에게 우리의 플랫폼과 함께 이용할 소프트웨어를 자유롭게 선택하도록 하고 싶습니다. 예시를 보고싶다면, MVT 이용하여 OpenLayers 데이터셋 만들기를 확인해보세요.

 

 

각각의 실행은 벡터 타일을 이용하여 다 다르게 작동합니다. 따라서 무엇이 각자의 용도에 최적인지를 알아보아야할 것입니다. 다른 라이브러리들의 예시도 보고 싶으시다면, CARTO로 문의 주세요.

 

 

 

성능 걱정 없이 규모에 따라 데이터 렌더링 하기

 

로케이션 앱의 성능에 맞추고, 데이터가 처리할 수 있는 양을 초과할 때 서버가 죽지 않게 하려면, 벡터 타일은 가능한 작게 유지해야 합니다. 예를 들어, 이 블로그에서 볼 수 있는 데모들은 뉴욕시의 400MB 지오메트리에 기반한 것입니다. 400MB의 데이터를 브라우저에 보내는 것은 불가능합니다. 100M 포인트의 점 데이터셋도 마찬가지로, 렌더링을 위해 모두 클라이언트에 보낼 수는 없습니다. 지금까지의 해결책은 사전처리를 하여 데이터를 패키지로 만드는 것이었습니다. 이러한 과정을 거치지 않으면, 50MB까지의 타일이 최대치일 것입니다.

벡터 타일이 CARTO에서 만들어질 때, 우리는 자동으로 데이터 사이즈를 최적의 범위로 떨어트리며, 지오메트리를 조정합니다. 따라서, 복잡한 지오메트리나 많은 데이터 포인트를 갖고 있는 큰 지도와 애플리케이션에서도, 느려지거나 에러가 나는 경우가 없을 것입니다. 복잡한 지오메트리 구조를 자동으로 단순화하고 정확히 동일한 위치에 있는 점을 자동으로 평평하게 만듦으로써, 작업하는 데이터의 양에 관계 없이 애플리케이션의 사용자 환경이 우수해집니다.

이러한 조정은 지도의 줌 레벨에 따라 달라지며, 절대 데이터 시각화의 퀄리티에 영향을 주지 않습니다. 줌 인을 하면 모든 데이터가 렌더링 되고, 줌 아웃을 하면 대신 중첩된 데이터에 대한 정보를 제공해줍니다. 애플리케이션을 구축할 때 개발자는 전체 데이터 셋을 대표하는 대화형 환경을 구축하고 열 지도를 렌더링하는 기능을 유지하면서, 타일 크기에 대해 걱정할 필요가 없습니다. 이러한 작업에 좋은 기본 값을 제공할 뿐 아니라, 작업 수행 방법을 제어하기 위한 특정 매개 변수도 제공합니다.

 

CARTO의 백엔드에서 완벽한 픽셀을 위해 데이터가 집계되는 지도 이미지를 확인해보세요. 데이터가 집계되지 않는 다른 데이터들도요.

 

 

Mapbox Vector Tiles를 이용할 때, 개발자는 클라이언트 측에 너무 많은 데이터를 로드하지 않도록 주의해야 합니다그러나 이제 CARTO가 그 문제를 해결해드립니다.

 

 

미래는 벡터에 있다

 

위에 설명드린 것들은 모든 CARTO 플랫폼에 벡터를 지원하기 위한 첫번째 단계에 불과합니다. 저희는 Maps API와 그들을 지원하는 라이브러리에 더 많은 기능을 추가할 것입니다. 이 발전들에 많은 기대를 하고 있으니, 계속해서 CARTO와 함께 해주세요!

CARTO를 처음 사용하든, 로케이션 인텔리전스를 잘 아는 사용자든, CARTO의 동적 벡터 타일은 위치 애플리케이션의 다양한 가능성을 열어줍니다. 이미 CARTO Engine에 액세스 할 수 있는 경우, 시작하려면 설명서를 확인해주세요. 그렇지 않은 경우, 언제든지 문의하여 특정 비즈니스 요구 사항에 맞는 기능의 데모를 확인하세요.

 

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