Листовка: як намалювати вигнуті лінії?


17

Отже, я намагаюся намалювати вигнуті лінії у своїй програмі, яка базується на карті Leaflet.

Наскільки я знаю, Leaflet на даний момент не підтримує малювання вигнутих ліній, тому моє запитання справді більше про те, як найкраще отримати деяку вигнуту лінію функціональності.

Проблема ускладнюється, оскільки мій код повинен бути сумісним IE-8, а це означає, що чистий SVG - це не рішення. (Листовка насправді відновлює VML, якщо виявить, що немає підтримки SVG ...)

Отже, одна з можливостей полягатиме в тому, щоб я записав якийсь код розширення листівок на основі SVG з власним запасом до VML. Це було б пекло багато роботи. : /

Хтось має кращу пропозицію?


Щойно зрозумів, що ніколи не приймав відповіді. Я вибрав його @dobrych, тому що Рафаель, здається, дуже приємна бібліотека та забезпечує гарний запас VML. Я також можу заглянути в arc.js.
fgysin відновила Моніку

Відповіді:


5

Зважаючи на вимогу підтримки 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 для будь-яких векторів веб-ГІС.



3

Створення власного користувальницького шару, мабуть, одне з варіантів вирішення цієї проблеми. Але так, я погоджуюся, це було б пекло багато роботи. Іншим варіантом було б намалювати власні криві (безьє, b-сплайн чи щось подібне) на основі географічних координат. Я не маю уявлення, якщо це виглядає добре, але я міг би уявити, що результат був би не надто поганим, і це, безумовно, набагато швидше. Сценарії JS для таких алгоритмів існують досить багато. Можливо, варто розглянути можливість проектування ваших даних у щось на зразок UTM для розрахунку.

Якщо ви знайдете smth. будь ласка, повідомте нас ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.