@vyaznikov1991
Набирающийся мудрости нуб-junior

С помощью чего можно создать свою интерактивную карту?

Необходимо реализовать интерактивную карту.

С подобной задачей ни разе не сталкивался.
С помощью гугла понял, что делается с помощью svg графики.
Здесь затык в том, что не понимаю как обрабатывать эффект при наведении на область (конкретно здесь закрашивать кружок и выводить подсказку с названием города), и не знаю как обрабатывать клик чтобы появилась информационная панель (3 скрин).

Как реализовать такое можно ?
  • Вопрос задан
  • 1943 просмотра
Пригласить эксперта
Ответы на вопрос 6
@mletov
А зачем svg?
Карту положить фоном,
Заведите в базе таблицу, в которой будете хранить маркеры, с указанием координат на карте и другой полезной инфой.
Выведите циклом поверх фона (position absolute).
Стиль кружка при наведении менять через css hover
Клик обрабатывайте через jquery click

Если нужно будет при наведении подсвечивать не кружки, а именно области, то воспользуйтесь www.outsharked.com/imagemapster
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Дык SVG точно так же реагирует на hover и на клики. По клику проще показывать div, в svg не очень удобно текст выводить.
Open Layers/Leaflef/clip-mask -- не нужны.
Ответ написан
Комментировать
Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!
Ну так, на вскидку, можно сделать много слоёв (столько же, сколько районов на карте), наложить на них clip-mask и обрабатывать клик по каждому отдельному слою соответствующим образом. Там уже именуйте их как Вам удобно, добавляйте ID'шники/классы и т.д.
Ответ написан
Комментировать
@GreatRash
Open Layers например. Или Leaflet.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Raphael.js (там в примерах есть даже)
Ответ написан
Комментировать
Использовали leaflet.js для подобных задач. Описанный функционал там уже есть, API очень прост и понятен, хорошо документирован. Зачем придумывать велосипеды, когда грамотные люди уже сделали решение? Единственное, что вам понадобится сделать:

- Написать функцию или REST API, которое возвращает данные для pop-up
- Написать функцию, которая выдаёт HTML для этого pop-up.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы