2017-02-22 14 views
-1

Вот что я пытаюсь сделать:Волд SVG карта с городом

Показать карту мира, и когда пользователь нажимает на страну, детальный вид страны открывает со всеми государствами/провинциями. Если они нажмут на государство/провинцию, я бы хотел показать им города. Я хотел бы иметь возможность фиксировать, в какую страну/государство/procvice/city они нажали.

Действительно ли я предполагаю, что SVG - это путь? Также любые предложения/указатели о том, как действовать.

Thanks

ответ

1

Я работал над подобным использованием, используя SVG.

Us Map with states, при нажатии на состояние, я показывал карту состояния.

Плюсы: 1. Я не удалял карты состояний после того, как они были нарисованы. Так что это довольно быстро. 2. Все элементы находятся в DOM, я смог изменить или добавить. (Пример: класс, элементы)

минусы: 1. Дополнительные элементы DOM. (проблема с производительностью)

Если у вас меньше манипуляций с DOM, и каждый раз, когда новые данные могут быть показаны, перейдите с холстом. Но идентифицируйте lib, который предоставляет больше API для манипулирования DOM (Ex: листовка, openlayer)

+0

Захват состояния, которое было нажато, довольно прямолинейно (ни SVG, ни холст). –

+0

Извините, я использую svg/canvas в первый раз. Поэтому, пожалуйста, медведь со мной. Я просто загружаю образец файла svg из wiki и добавляю его к объекту на странице html? Чтобы реализовать возможность щелчка и масштабирования, нужно ли мне делать что-то конкретное? Thx – tkansara

+0

Вместо загрузки SVG-карты загрузите файлы geo json (которые содержат координаты lat и lang). Используйте некоторые библиотеки диаграмм/библиотеки карт, чтобы нарисовать карту (пример: D3.js). Пример: https://bl.ocks.org/mbostock/4060606 –

Смежные вопросы