Ответ 1
Плагин jQuery для оформления карт изображений (подсветка, выделение областей, всплывающих подсказок):
http://www.outsharked.com/imagemapster/
Раскрытие: я написал это.
Я пытаюсь создать интерактивную карту, где пользователи могут нажимать на разные провинции на карте, чтобы получить информацию, относящуюся к этой провинции.
Пример:
http://www.todospelaeducacao.org.br/
http://code.google.com/p/svg2imap/
Пока что я нашел только решения с ограниченной функциональностью. Я действительно только искал это, используя файл SVG, но я был бы открыт для других типов файлов, если это возможно.
Если кто-нибудь знает о полностью функционирующем способе сделать это (плагин jQuery, PHP-скрипт, векторные изображения) или о том, как это сделать вручную, пожалуйста, поделитесь.
Плагин jQuery для оформления карт изображений (подсветка, выделение областей, всплывающих подсказок):
http://www.outsharked.com/imagemapster/
Раскрытие: я написал это.
Похоже, вы хотите простую карту изображений, я бы рекомендовал не делать ее более сложной, чем она должна быть. Здесь статья о о том, как улучшить образ изображений с помощью svg. Очень легко сделать кликируемые области в svg, просто добавьте некоторые элементы <a> вокруг фигур, которые вы хотите кликать.
Несколько вариантов, если вам нужно что-то более продвинутое:
Я думаю, что лучше разделить мой ответ на две части:
A. Создайте все с нуля (используя SVG, JavaScript и HTML5):
<polygon points="200,10 250,190 160,210" style="fill:lime;stroke:purple;stroke-width:1"
onmouseover="mouseOverHandler(evt)"
onclick="clickHandler(evt)" />
function mouseOverHandler(evt) {};
function clickHandler(evt) {};
B -Используйте программное обеспечение, например FLDraw Interactive Image Creator (только если у вас есть изображение карты и вы хотите чтобы сделать его интерактивным):
Вариант (A) очень хорош, если вы программист или у вас есть кто-то для создания необходимого кода и SVG файла для вас, Вариант (B) хорош, если вы не хотите нанимать кого-то или тратить свое время на создание всего с нуля
У вас есть и другие варианты, например, с использованием HTML5 Canvas вместо SVG, но создавать карту с масштабированием можно с помощью HTML5 Canvas, возможно, есть и другие способы, о которых я не знаю.
На всякий случай кто-нибудь будет искать его - я использовал его на нескольких сайтах, всегда настройки и возможности RD были идеально подходят для того, что мне было нужно. Просто и свободно:
Одна заметка для большего количества скриптов на сайте: у меня были некоторые неприятные проблемы с работой над картой (работающей графическим меню) в Drupal 7. Там, где использовалось много других script и после их обработки, я застрял с картой - он все равно не работал, хотя jquery.cssmap.js, CSS (как локальный), так и script в том месте, где он находится в нужном месте. Firebug показал мне ошибку, и я вдруг eureka - простой надзор, я оставил код script, как и в этом примере, и возник конфликт. Просто измените переднюю функцию "$" на "jQuery" (или другой обработчик), и она отлично работает.:]
Вот что я могу сказать (конечно, вы можете поставить его раньше, чем):
<script type="text/javascript">
jQuery(function($){
$('#map-country').cssMap({'size' : 810});
});
</script>
Перейдите в SVG до Script с вашим SVG выводом по умолчанию является карта в SVG Код, который добавляет события, также добавляется, но легко идентифицируется и может быть изменен по мере необходимости.
Я использовал makeaclickablemap для своих провинциальных карт в течение некоторого времени, и оказалось, что это действительно хорошо подходит.
У меня были те же требования, и, наконец, этот Конвертер карт работал у меня. Это лучший плагин для любого поколения карт.
Следующий код может помочь вам:
$("#svgEuropa [id='stallwanger.it.dev_shape_DEU']").on("click",function(){
alert($(this).attr("id"));
});
Вот еще один плагин карты изображений, который я написал для улучшения карт изображений: https://github.com/gestixi/pictarea
Это позволяет легко выделить всю область и указать различные стили в зависимости от состояния зоны: нормальный, зависающий, активный, отключенный.
Вы также можете указать, сколько зон может быть выбрано в одно и то же время.
У вас есть несколько вариантов для этого:
1 - Если вы можете найти файл SVG для нужной вам карты, вы можете использовать что-то вроде RaphaelJS или SnapSVG, чтобы добавить клики для ваших состояний/регионов, это решение является самым настраиваемым...
2 - Вы можете использовать специальные инструменты, такие как clickablemapbuilder (бесплатно) или makeaclickablemap (я думаю, также бесплатно).
[отказ от ответственности] Im автор clickablemapbuilder.com:)
<script type="text/javascript">
jQuery(function($){
$('#map-country').cssMap({'size' : 810});
});
</script>