gmap3 - 遍历标记
gmap3 - Loop through markers
我们想要遍历 google 地图上的所有标记。我们要这样做的原因是:我们要更改所有标记的图标。
我们写了一个 if 语句来区分标记和我们点击的标记。
if (marker.id==$i) {
marker.setIcon('assets/images/website/marker-active.png');
} else {
if (marker.id != 777) {
marker.setIcon('assets/images/website/marker.png');
}
}
但是我们无法找出如何执行循环。
提前致谢。
您必须在创建标记时对其进行哈希处理。有多种方法可以做到这一点,但这里有一个简单的方法可以帮助您入门:
var markers = {};
$.getJSON('marker_data.php').then(function(data) {
data.forEach(function(record) {
options = foo; //create the options object for the marker
markers[record.id] = new google.maps.marker(foo);
});
});
或者,您可以将它们存储在一个数组中,但这可能会使检索特定标记变得更加困难,我倾向于通过 id 将它们缓存在一个对象中。
一旦你有了 hash/array,迭代就很容易了:
for (var id in markers) {
if (id == activeID) {
marker.setIcon('assets/images/website/marker-active.png');
} else if (id != 777) {
marker.setIcon('assets/images/website/marker.png');
}
}
我的示例假设您在后端使用 jQuery 作为 AJAX 和 php,但要根据您的堆栈进行调整。
我们想要遍历 google 地图上的所有标记。我们要这样做的原因是:我们要更改所有标记的图标。
我们写了一个 if 语句来区分标记和我们点击的标记。
if (marker.id==$i) {
marker.setIcon('assets/images/website/marker-active.png');
} else {
if (marker.id != 777) {
marker.setIcon('assets/images/website/marker.png');
}
}
但是我们无法找出如何执行循环。
提前致谢。
您必须在创建标记时对其进行哈希处理。有多种方法可以做到这一点,但这里有一个简单的方法可以帮助您入门:
var markers = {};
$.getJSON('marker_data.php').then(function(data) {
data.forEach(function(record) {
options = foo; //create the options object for the marker
markers[record.id] = new google.maps.marker(foo);
});
});
或者,您可以将它们存储在一个数组中,但这可能会使检索特定标记变得更加困难,我倾向于通过 id 将它们缓存在一个对象中。
一旦你有了 hash/array,迭代就很容易了:
for (var id in markers) {
if (id == activeID) {
marker.setIcon('assets/images/website/marker-active.png');
} else if (id != 777) {
marker.setIcon('assets/images/website/marker.png');
}
}
我的示例假设您在后端使用 jQuery 作为 AJAX 和 php,但要根据您的堆栈进行调整。