gpt4 book ai didi

javascript - 根据距离显示/隐藏标记(使用 JQuery slider )

转载 作者:行者123 更新时间:2023-12-03 10:41:19 24 4
gpt4 key购买 nike

我正在开发 Gmap3(带有 JQuery 的 Google map ),并且我正在尝试根据用户和其他标记的距离(根据 slider 值)显示/隐藏标记

我每次都尝试用 computeDistanceBetween() 来计算距离,但无法使其工作。

这里是示例代码(js)和jsfiddle链接:

$(function(){

var distance;

$("#test").gmap3();

$("#display p").empty();
var coordinates = $("#geofenceCoords").val();
var jsonObj = jQuery.parseJSON(coordinates);

//user position (Blue marker)
var markersData = {
values: [
{
latLng: [51.506695,-0.147950],
options: {
icon: "http://maps.google.com/mapfiles/kml/paddle/blu-circle.png",
},
data: 'aaabbb'
,tag:"aaa", id:"<?php echo $id; ?>"
}
,
],
options:{
draggable: false
}
};


$("#test").gmap3({
getlatlng:{
callback: function(results){
//add other markers
var markers=[];
$.each(jsonObj, function(i, item) {
var marker = new Object();
marker.lat = jsonObj[i].latitude;
marker.lng = jsonObj[i].longitude;
marker.options = new Object();
marker.options.icon = new google.maps.MarkerImage("http://maps.google.com/mapfiles/marker.png");
markers.push(marker);
});

$("#test").gmap3({
marker:{
//add the markers
values: markers,
options: {draggable: false}
},
autofit:{},
});
}
}
});

//add the user position (blue marker)
$("#test").gmap3({
action: 'addMarker',
marker: markersData
},"autofit");

//slider to hide/show markers according the distance

$("#slider").slider(
{
range: "min",
value: 500,
min: 1,
max: 1000,
slide: function( event, ui ) {
computedistance(ui.value);
$( "#slider-value" ).html( ui.value );
$( "#slider-distance" ).html( computedistanceAndHideMarkers(ui.value) );
}
}
);

$( "#slider-value" ).html( $('#slider').slider('value') );

function computedistanceAndHideMarkers(km){
// var distance = google.maps.geometry.spherical.computeDistanceBetween(,km);
//return distance;
}

});

这是我到目前为止所拥有的:jsfiddle

非常感谢您的帮助!

谢谢

伊兰。

最佳答案

您没有在 fiddle 中加载几何库。

显示/隐藏标记的函数可能如下所示:

function computedistance(km) {

var //the markers
markers = $("#test").gmap3({
get: {
name: "marker",

all: true
}
}),
//location of the blue marker
user = new google.maps.LatLng(markersData.values[0].latLng[0],
markersData.values[0].latLng[1]),
//the map
map = $("#test").gmap3({
get: {
name: 'map'
}
});


//iterate over the markers
$.each(markers, function (i, m) {
m.setMap((google.maps.geometry.spherical
.computeDistanceBetween(user, m.getPosition()) <= km * 1000)
? map
: null);
})

}

演示:http://jsfiddle.net/doktormolle/ahLmdLuf/

关于javascript - 根据距离显示/隐藏标记(使用 JQuery slider ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com