Какие веб-картографические библиотеки подходят для карт помещений? [закрыто]

11

Я ищу пользовательскую библиотеку отображений, но не для отображения фактической географической области, а для отображения пользовательского плана этажа. Я долго искал, но большинство решений, которые я нашел, были для географических областей.

Я хотел бы настроить несколько уровней масштабирования (возможно, 3 уровня), и в идеале я ищу решение JavaScript, HTML5 (canvas, SVG).

У кого-нибудь есть предложения?

Тамас
источник
1
Можете ли вы уточнить ваши требования? Какие функции вы отображаете, и какие интерактивные функции вы хотите предоставить? Примерно, насколько велик объект? Должна ли функциональность картографирования в помещении интегрироваться с картой мира / улицы?
blah238
Спасибо за эти отличные ответы. Я посмотрю эти решения / ссылки, которые вы рекомендовали. Чтобы дать вам больше информации, я хотел бы отобразить план мест (отдельные кабины, офисы, а также команды (т. Е. Инженера, продукта mngmt и т. Д.) На карту этажа. Поэтому нет необходимости иметь функцию сопоставления для интеграции с наружная / карта мира.
Тамас

Ответы:

9

Я делал свое собственное приложение для карт, используя свои собственные карты изображений. Наш университет переехал в новый кампус, и я планирую 7 этажей (в помещении), с 5 уровнями увеличения, из нарисованных от руки карт.

Leaflet умеет работать с пользовательскими плитками карты! Я следовал этому руководству (omarriott.com/aux/leaflet-js-non-geographic-imagery), просто сделал несколько проб и ошибок с числами уровней масштабирования, чтобы убедиться, что карта появилась (следуя руководству точно не работа для меня).

Есть плагин Leaflet Indoor, но он использует geoJson, которого у меня не было. Все, что у меня есть, это пользовательские координаты изображения и мой собственный Json. В любом случае листовка может преобразовывать координаты изображения в широту (и наоборот) с помощью методов unproject и project.

То, что я сделал, чтобы создать разные этажи, было использовать вместо этого контроль слоя. Конечно, требуется время, чтобы понять API и убедиться, что все работает как надо. Например, я сгруппировал свои маркеры для каждого этажа и закодировал способ их визуального отображения на разных уровнях масштабирования. А при загрузке другого этажа также требуется обработчик для правильной загрузки маркеров.

Я знаю, что у Leaflet есть масса примеров, основанных на географических картах, и он может оставить людей, подобных нам, в неведении, но я хочу заверить вас, что это возможно сделать для пользовательских карт. Вам нужно изображение, правильно расположите его (с правильными именами), загрузите его в CDN, например Amazon, и затем используйте Leaflet API.

Кевин Ли
источник
3

Не зная вашего варианта использования, вы можете взглянуть на библиотеку D3.js (Data Driven Documents) для визуализации данных. Хотя я не знаю, поддерживает ли он «уровни масштабирования» как таковой, но он поддерживает масштабируемые карты .

Взгляните на их многочисленные примеры здесь: https://github.com/mbostock/d3/wiki/Gallery

RyanKDalton
источник
2

Рассматривайте план этажа как географический район. OpenLayers или Leaflet не заботятся о том, что они отображают - внутри или снаружи - до тех пор, пока вы можете определить систему координат, все будет хорошо.

BradHards
источник
1
Я бы сказал, что есть некоторые аспекты картографирования внутри помещений, которые сложно использовать с библиотеками карт общего назначения, такие как многоуровневая архитектура, точность, связность, маршрутизация и т. Д., Которые имеют уникальные проблемы. И объединить все это с универсальной библиотекой картографирования на открытом воздухе также, вероятно, довольно сложно.
blah238
blah238: вики сообщества. Редактировать по желанию.
BradHards