Итак, я пытаюсь нарисовать изогнутые линии в своем приложении, основанном на карте Leaflet.
Насколько я знаю, Leaflet в настоящее время не поддерживает рисование изогнутых линий, поэтому мой вопрос на самом деле больше о том, как наилучшим образом реализовать некоторую функциональность изогнутых линий.
Проблема усложняется, потому что мой код должен быть совместимым с IE-8, что означает, что чистый SVG не является решением. (Leaflet на самом деле делает откат к VML, если обнаруживает, что поддержка SVG отсутствует ...)
Таким образом, одна возможность была бы для меня написать некоторый код расширения листовки, основанный на SVG с его собственным отступлением к VML. Это было бы чертовски много работы. : /
У кого-нибудь есть лучшее предложение?
leaflet
polyline-creation
svg
фгысин восстановить монику
источник
источник
Ответы:
Учитывая требование поддержки IE8, у нас не так много вариантов. Я могу вспомнить только одну SVG-библиотеку, у которой есть запасной вариант VML - Raphaël.js. Поэтому вы можете попробовать эту реализацию плагина уровня Raphaël для Leaflet. https://github.com/dynmeth/RaphaelLayer Я сам не пробовал подключать плагин, но успешно использовал Raphaël. Надеюсь, ты сможешь найти применение.
Вот рабочий пример (изображение ссылки на демо) http://visualizingurbanfutures.com/2012/09/06/maps-with-raphael-js/
Если бы не требование IE8, я бы использовал D3 для любых векторов в веб-ГИС.
источник
Вы можете использовать плагин arc.js для листовки, чтобы рисовать кривые линии.
источник
Создание собственного пользовательского слоя, вероятно, является одним из решений этой проблемы. Но да, я согласен, что это будет чертовски много работы. Другой вариант - нарисовать ваши собственные кривые (безье, b-сплайн или что-то в этом роде) на основе географических координат. Я понятия не имею, выглядит ли это хорошо, но я мог предположить, что результат не будет слишком плохим, и он определенно будет достигнут намного быстрее. Существует множество JS-скриптов для таких алгоритмов. Возможно, стоит подумать о том, чтобы спроецировать ваши данные в нечто вроде UTM для расчета.
Если вы найдете что-л. пожалуйста, дайте нам знать ...
источник