Как отобразить пользовательские векторные плитки на Google Картах - PullRequest
2 голосов
/ 09 января 2020

Цель состоит в том, чтобы отображать большой объем данных на Картах Google. Под большим количеством я подразумеваю около 10 миллионов сегментов, хранящихся в базе данных PostgreSQL. Сегменты представляют некоторые характеристики дорог, поэтому сегменты должны перекрывать дороги на базовой карте. Свойства сегмента могут со временем меняться.

Лучшее техническое решение для этой проблемы - использовать пользовательский сервер плиток (исправьте, если не так).

Согласно API Карт Google JS, я обнаружил два способа рисовать карту, используя пользовательский сервер плиток:

Я пробовал оба. Первый не соответствует моим потребностям, потому что Geo Json выглядит слишком большим, что приводит к проблемам с производительностью. Второе плохо с точки зрения UX, потому что оно использует растровые плитки, тогда как в настоящее время мы должны использовать векторные плитки. Я также посмотрел на OpenLayers / Leaflet, но не нашел официального пути к go с Google Maps (см. https://github.com/mapbox/mapbox-gl-js/issues/1791).

Ключом здесь будет использование вектора мозаики, однако мне не удается отобразить векторные плитки (MVT) на Картах Google.

Есть ли вообще способы рендеринга векторных плиток на платформе Google Maps?

1 Ответ

1 голос
/ 14 января 2020

Я достиг поддержки Google Maps Platform, и они посоветовали мне использовать deck.gl .

Это технология отображения огромных наборов данных на карте, включая Google Maps. Он использует официальный Google Maps API для рендеринга, особенно OverlayView.

. Здесь есть хороший пост в блоге о Google Maps & deck.gl: https://cloud.google.com/blog/products/maps-platform/high-performance-data-visualizations-google-maps-platform-and-deckgl

Мне удалось отобразить пользовательские векторные плитки на Картах Google, используя angular, и вот пример репо: https://github.com/yterletskyi/deckgl-angular

Кстати, благодаря решению LuisTavares о библиотеке https://github.com/landtechnologies/Mapbox-vector-tiles-basic-js-renderer, которая также использует OverlayView. Я не пробовал, но подход такой же, как в deck.gl, поэтому никаких проблем не должно быть.

UPD:

После игры с колодой. Гл, проблема превратилась в реализацию этого на мобильных iOS & Android платформах. После некоторого исследования я связался со службой поддержки Google, но, к сожалению, решения, похоже, нет. Цитата службы поддержки Google:

Здравствуйте, Юра,

К сожалению, нет способа визуализировать векторные плитки с помощью мобильных API. У меня также нет рекомендаций для служб, которые позволяют вам делать это с помощью Google Maps API.

Мои извинения,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...