У меня нет опыта работы с API Карт Google, но в своем сообщении вы заявляете, что у вас есть таблица базы данных MySQL с длинными и латами.
Прочтите AJAX, чтобы автоматически обработать положение маркера (и проверитьэто) вместо нажатия Отправить.Это должно вытащить вас довольно далеко.
Теперь о длинных и латах.Скажите, что человек бросает это на (x, y).Мы хотим сделать круг вокруг этой точки радиусом 3 мили.Чтобы выбрать все маркеры в пределах (квадрата! Заметьте) 3 мили вокруг этого, мы хотели бы сделать аналогичный запрос:
select stuff from markers where long < 'x + 3' and long > 'x - 3' and lat < 'y + 3' and lat > 'y - 3'
с целым числом 3 в милях, конечно.
Теперь мы берем разницу в long и lat между новым маркером (x,y)
и каждым из запрашиваемых маркеров и применяем к нему пифагорейский треугольник.
Допустим, один из маркеров базы данных лежит на (db_x,db_y)
.Мы получаем разницу между этими двумя значениями с помощью (db_x - x, db_y - y)
* сноски: не имеет значения, положительный или отрицательный, потому что Пифагор принимает его квадрат)
Теперь возведем в квадрат все это (все в псевдокоде):
h^2 = (db_x - x)^2 + (db_y - y)^2
h = sqrt(h^2)
теперь для всех длин и латов в базе данных (которые мы запрашивали) у нас есть расстояние h
до нашего нового маркера.
Затем перейдем к циклу по каждой из этих h
переменных, чтобы увидеть, если один < 3
, и если это так, вы не можете поместить маркер ...
Удачи.