Насколько я понял в вашем вопросе, вы пытаетесь сделать
- показать карту
- создать круг на карте
- нажав на карту, определите, находится ли точка снаружи или внутри круга.
. В SO есть сообщение об этом: Проверьте, находятся ли широта и долгота в пределах круга. Google Maps.Если вы проверите принятый ответ (кредиты Гуффа для алгоритма гения), он использовал эту функцию, чтобы проверить, находится ли точка в радиусе:
// credits to user:69083 for this specific function
function arePointsNear(checkPoint, centerPoint, km) {
var ky = 40000 / 360;
var kx = Math.cos(Math.PI * centerPoint.lat / 180.0) * ky;
var dx = Math.abs(centerPoint.lng - checkPoint.lng) * kx;
var dy = Math.abs(centerPoint.lat - checkPoint.lat) * ky;
return Math.sqrt(dx * dx + dy * dy) <= km;
}
Теперь, что и для чего?Вы пытаетесь достичь, вы можете просто добавить это в ваше событие клика.Вот что я сделал:
google.maps.event.addListener(map, 'click', function(event) {
var click = event.latLng;
var locs = {lat: event.latLng.lat(), lng: event.latLng.lng()};
var n = arePointsNear(user, locs, diameter);
Затем я добавил условие, что если функция возвращает true, маркер будет иметь метку " I " (сокращение от внутренней части).
if(n){
marker = new google.maps.Marker({
map: map,
position: locs,
label: {
text:"I", //marking all jobs inside radius with I
color:"white"
}
});
Тогда, если это не так, маркер будет помечен " O " (сокращение от снаружи) ...
}else{
marker = new google.maps.Marker({
map: map,
position: locs,
label: {
text:"O", //marking all jobs outside radius with O
color:"white"
}
});
}
});
Вот пример приложения, котороеЯ создал, на всякий случай, если вы хотите увидеть его в действии: http://jsbin.com/hujusod/edit?js,output
Это возможный дубликат Проверьте, находятся ли широта и долгота в круге Google Maps .Или Как отображать содержимое на основе ближайшего широковещательного / длинного адреса к введенному .
Но поскольку функция используется по-другому, я разместил свой ответ, чтобы помочь вам сделать то, что вы изначально намеревались,Не стесняйтесь высказать ответ, откуда взялась функция arePointsNear
, если это то, что вам нужно.
Надеюсь, это помогло!