Я ищу пользовательскую библиотеку отображений, но не для отображения фактической географической области, а для отображения пользовательского плана этажа. Я долго искал, но большинство решений, которые я нашел, были для географических областей.
Я хотел бы настроить несколько уровней масштабирования (возможно, 3 уровня), и в идеале я ищу решение JavaScript, HTML5 (canvas, SVG).
У кого-нибудь есть предложения?
Ответы:
Я делал свое собственное приложение для карт, используя свои собственные карты изображений. Наш университет переехал в новый кампус, и я планирую 7 этажей (в помещении), с 5 уровнями увеличения, из нарисованных от руки карт.
Leaflet умеет работать с пользовательскими плитками карты! Я следовал этому руководству (omarriott.com/aux/leaflet-js-non-geographic-imagery), просто сделал несколько проб и ошибок с числами уровней масштабирования, чтобы убедиться, что карта появилась (следуя руководству точно не работа для меня).
Есть плагин Leaflet Indoor, но он использует geoJson, которого у меня не было. Все, что у меня есть, это пользовательские координаты изображения и мой собственный Json. В любом случае листовка может преобразовывать координаты изображения в широту (и наоборот) с помощью методов unproject и project.
То, что я сделал, чтобы создать разные этажи, было использовать вместо этого контроль слоя. Конечно, требуется время, чтобы понять API и убедиться, что все работает как надо. Например, я сгруппировал свои маркеры для каждого этажа и закодировал способ их визуального отображения на разных уровнях масштабирования. А при загрузке другого этажа также требуется обработчик для правильной загрузки маркеров.
Я знаю, что у Leaflet есть масса примеров, основанных на географических картах, и он может оставить людей, подобных нам, в неведении, но я хочу заверить вас, что это возможно сделать для пользовательских карт. Вам нужно изображение, правильно расположите его (с правильными именами), загрузите его в CDN, например Amazon, и затем используйте Leaflet API.
источник
Не зная вашего варианта использования, вы можете взглянуть на библиотеку D3.js (Data Driven Documents) для визуализации данных. Хотя я не знаю, поддерживает ли он «уровни масштабирования» как таковой, но он поддерживает масштабируемые карты .
Взгляните на их многочисленные примеры здесь: https://github.com/mbostock/d3/wiki/Gallery
источник
Рассматривайте план этажа как географический район. OpenLayers или Leaflet не заботятся о том, что они отображают - внутри или снаружи - до тех пор, пока вы можете определить систему координат, все будет хорошо.
источник