Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возможно ли отловить событие на area от программного клика/наведения на мап-карте ? (https://javascript.ru/forum/misc/35486-vozmozhno-li-otlovit-sobytie-na-area-ot-programmnogo-klika-navedeniya-na-map-karte.html)

Deff 12.02.2013 15:55

Цитата:

Сообщение от danik.js
Как это не работает? Ты как новичек. Почему не работает?

danik.js,
Есть код карты:
<div  id="div">
<map id="karta-00" name="karta >
<area href="/" shape="rect" coords="0,0,250,150" title="В оглавлении форума">
<area href="/f1-forum" shape="rect" coords="250,0,500,150" title="Ваш первый форум">
<area href="/viewonline" shape="rect" coords="0,150,500,300" title="Просматривает «Кто сейчас на форуме»">
</map>
<img src="http://s017.radikal.ru/i416/1302/69/20132fd94fd6.jpg" style="z-index:0;position:relative" usemap="#karta" border="0" onload="LoadFunk()">
</div>

Покажи как "дедушка" ...

Deff 12.02.2013 15:58

9xakep,
CПС, но нужно имхо через тег <map>, ибо позиционировать img на каждую аэрофотосъемку - не айс(да и при кривой дороге их нужно несколько) - а оцифровка регионов в геодезии - автомат
Нужно показать как объект движется по дороге,я позиционирую драг - программно и смотрю не упираюсь ли в край региона текущего ареа, т.е нужно отслеживать программное наведение или клик на конкретную точку

1. Есть MaП-карта,
Нужно: Задать координаты программно(вводим координаты в инпут) и программно кликнуть по данным координатам на карте
и получить href из area

9xakep 12.02.2013 16:09

Deff,
так а в чем проблема собрать координаты в массив например:

var coords = [[0,0,250,150], [250,0,500,150], [0,150,500,300], 0]


Последний элемент массива - это то куда нужно "тыкнуть"
В обработчике просто сделать проверку, если последний элемент равен "-1", например, тогда х,у взять из event, иначе взять координаты элемента с индексом
coords[coords.length-1], и тыкнуть по нему

Deff 12.02.2013 16:13

9xakep,
Сотни карт, координаты могут быть круговыми, сотни регионов на карте
Нун делать всю ту же задачу, что браузер уже выполнил, для клика наведения по ареа
есть точка и полсотни area cо сложными регионами (не квадраты - и не прямоугольники) ( этот эскиз просто с форум поддержки

(По координатам имхо сделал, но не Айс)

9xakep 12.02.2013 16:36

хм... странно, я наконец-то понял, что ты хочешь) Попробовал сделать, почему-то он при клике находит img у которой z-index = 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  </head>
  <body>




<script type="text/javascript">


window.onload = function () {
	var map = document.getElementById('map');
	var c = [214,37]
	map.addEventListener('click', function (e) {
	
		alert(document.elementFromPoint(c[0],c[1]).title)
	},false)
}
</script>
<div  id="div" style="z-index:99;position:absolute width:100%;height:100%;bopder:red solid 1px;">
<map style="z-index:100;position:relative"  id="map" name="karta" style="z-index:100;position:relative" >
<area style='z-index:101;' href="/" shape="rect" coords="0,0,250,150" title="В оглавлении форума">
<area href="/f1-forum" shape="rect" coords="250,0,500,150" title="Ваш первый форум">
<area href="/viewonline" shape="rect" coords="0,150,500,300" title="Просматривает «Кто сейчас на форуме»" />
</map>
<img src="http://s017.radikal.ru/i416/1302/69/20132fd94fd6.jpg" style="z-index:0;position:relative" usemap="#karta" border="0" onclick="alert('Увидел, что был Клик по img usemap')/**/">
</div>

  </body>
</html>


Ан, нет, такая шняга работает только в хроме, в мозиле, как уже было сказано ранее, она почему-то первой находит img

Deff 12.02.2013 16:51

Цитата:

Сообщение от 9xakep
Ан, нет, такая шняга работает только в хроме, в мозиле, как уже было сказано ранее, она почему-то первой находит img

:cray: Вот - Вот

Deff 12.02.2013 16:54

Цитата:

Сообщение от 9xakep
Попробовал сделать, почему-то он при клике находит img у которой z-index = 0

z-indexами баловался, пытаясь приподнять <map> тег над img, но тщетно, походу этот тег не участвует в действе без наведения рукой юзера

nerv_ 12.02.2013 17:06

Цитата:

Сообщение от Deff
Возможно ли отловить событие на area от программного клика/наведения на мап-карте ?

зачем, если ты сам (программно) наводишь?

danik.js 12.02.2013 17:11

Цитата:

Сообщение от Deff
1. Есть MaП-карта,
Нужно: Задать координаты программно(вводим координаты в инпут) и программно кликнуть по данным координатам на карте
и получить href из area

Походу по координатам ты не получишь арею в ФайрФоксе...

Придется тебе вычислять нужную арею перебирая все, основываясь на shape и coords ...

Deff 12.02.2013 17:15

nerv_,
Как определить к какому area принадлежит?
Area не прямоугольники
Двигаюсь по дороге на карте (серпантин для верности) пытаюсь тестить следующую точку - в пределах ли она дороги, нет возвращаюсь, чуть меняю вектор и снова тестирую


Часовой пояс GMT +3, время: 10:57.