- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试选择显示和隐藏带有类别的标记。它工作正常,但如果 map 上有标记簇则无法工作。例如。当我选择 map 上的类别酒吧标记时,类别餐厅消失,但标记簇仍在 map 上。这是我的 intin 函数:
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var chicago = new google.maps.LatLng(52.6145, 21.3418);
var mapOptions = {
zoom: 6,
center: chicago
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
directionsDisplay.setMap(map);
// Geolocation
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
document.getElementById('field').value = +position.coords
.latitude + "," + position.coords.longitude;
marker = new google.maps.Marker({
position: pos,
animation: google.maps.Animation.DROP,
map: map
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
// Browser doesn't support Geolocation
handleNoGeolocation(false);
}
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("db/parse_xml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName(
"marker");
markerArray = [];
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var cover = markers[i].getAttribute("cover");
var point = new google.maps.LatLng(parseFloat(markers[i]
.getAttribute("lat")), parseFloat(markers[i]
.getAttribute("lng")));
var html = "<div id='infobox'><img src='" + cover +
"'/><b>" + name + "</b><br>" + address +
" <br/><input type='button' id='end' onClick=calcRoute() name='" +
name + "," + address +
"' value='Wyznacz trasę'></div>";
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow,
category: type
});
markerArray.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
document.getElementById('pasekBoczny').innerHTML +=
'<li class="list-sidebar" ><a href="javascript:myclick(' +
i + ')" >' + name + '</a></li>';
// markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markerArray);
});}
和我的过滤功能:
filterMarkers = function (category) {
for (i = 0; i < markers.length; i++) {
marker = markers[i];
// If is same category or category not picked
if (marker.category == category || category.length === 0) {
marker.setVisible(true);
}
// Categories don't match
else {
marker.setVisible(false);
}
}}
最佳答案
我假设您不想完全删除标记簇,只需更改隐藏标记的位置即可。当您循环标记时,请从集群中删除那些隐藏的标记,如下所示:
// Categories don't match
else {
marker.setVisible(false);
markerCluster.removeMarker(marker);
}
同样,如果您显示标记,您可能需要使用 addMarker
将其添加回集群中
// If is same category or category not picked
if (marker.category == category || category.length === 0) {
marker.setVisible(true);
markerCluster.addMarker(marker);
}
然后您可能需要调用 MarkerClusterer 上的redraw
函数。
参见https://googlemaps.github.io/js-marker-clusterer/docs/reference.html
redraw() Redraws the clusters.
您需要首先修改代码以使 MarkerClusterer 成为全局变量。例如
var markerCluster;
function initialize() {
...
markerCluster = new MarkerClusterer(map, markerArray);
}
filterMarkers = function (category) {
for (i = 0; i < markers.length; i++) {
marker = markers[i];
// If is same category or category not picked
if (marker.category == category || category.length === 0) {
marker.setVisible(true);
markerCluster.addMarker(marker);
}
// Categories don't match
else {
marker.setVisible(false);
markerCluster.removeMarker(marker);
}
}
markerCluster.redraw();
};
关于javascript - 显示/隐藏类别标记。不使用 MarkerCluster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760088/
我仅在同一位置的标记上进行聚类(即 maxClusterRadius = 0)。单击集群时,我希望它以特定的缩放级别(不是最大缩放)居中并放大,然后立即 spiderfy。使用以下代码,spiderf
与 Leaflet.Markercluster ,如何检查标记是否在集群中? 最佳答案 使用Leaflet的hasLayer()函数 常规可见标记在技术上作为图层存在于 map 中。 Leaflet
当您放大和缩小时,markerclusters 会自动“重新聚类”,因为它会再次计算聚类。 是否可以选择在更改缩放比例时禁用自动重新聚类? 最佳答案 根据您要实现的目标,您可能会对 Leaflet.M
我正在尝试使用包含纬度、经度、弹出信息和图层定义的多维数组来填充传单 map 。问题是 2 个标记应该去 layer1,另外两个去 layer2。事实上,所有四个标记都属于两个层。感谢您的帮助。 va
我正在使用 Leaflet.markercluster将我的标记聚集在我的 Mapbox Map 中.将使用 json 填充标记。文件。我只需要一个搜索功能,它可以根据搜索字符串弹出必要的标记。我认识
使用Leaflet.markercluster人们可以在example中看到一个不错的动画。 。启用动画,例如: L.markerClusterGroup({ animate: true, a
有没有办法将 onEachFeature 事件(见下文)中通过 .getCenter() 创建的中心点添加到 L.Marker 或类似对象,该对象包含所有创建的中心点该事件可以被 Leaflet.Ma
我正在使用 MarkerCluster 在 folium 中创建传单 map 。我已经查阅了所有文档并搜索了示例,但我无法弄清楚如何为给定的 MarkerCluster 或 FeatureGroup
所以我的 map 上有几家商店作为图层。我的所有商店都已添加到 MarkerCluster,并且该商店已添加到 map ,一切正常。但我想在商店位于我的 viewPort 中时显示有关该商店的简短信息
我试图显示一张 map ,上面有很多标记(~36.000),其中必须包含一些信息。 首先,我从数据库中选择元素,然后使用 PHP 将其编码为 JSON 数组,然后使用 JSS 获取它,最后将其添加到我
我想为我的标记使用自定义图标,同时使用传单 MarkerCluster . 我已经设法实现了我的自定义图标 ,但是 现在标记弹出不再工作了。 我的代码如下所示: var markers1 = new
我目前正在使用外部 geojson 文件作为数据输入的传单项目。由于 json 包含很多对象,我想使用 MarkerCluster我从 Mappbox 得到的插件: 在没有集群的情况下显示 js
首先我使用 JSON//Work 获取车站位置 JSON 结构: [{"number":31705,"name":"31705 - CHAMPEAUX (BAGNOLET)","address":"R
是否有可能在没有用户交互的情况下显示 Markercluster 内的 Leaflet 标记? 现在我正在使用 panTo 方法 ( http://leafletjs.com/reference.ht
我正在使用 github 上的 MarkerCluster_compiled.js。但虽然逻辑有效,但它的图形从昨天开始就开始失效。 问题似乎是由“https://google-maps-utilit
我的情况是我有很多地理数据,其中许多具有相同的纬度和经度。 我想让 MarkerCluster 的 zoomOnClick 处理程序保持事件状态,但是本地图保持放大并获得最大缩放级别时,集群中相同的纬
我有一个 Leaflet + MarkerCluster 应用程序,它在 map 上有一些标记,并在打开与标记关联的弹出窗口时(单击标记时)将图像叠加层添加到 map 的一些逻辑。我使用 bindPo
假设我们有以下 map : https://jsfiddle.net/fcumj09w/5/ 在上面的示例中,我们有 2 个标记集群组(clustRed 和 clustYellow)和这些组之外的单个
我正在尝试选择显示和隐藏带有类别的标记。它工作正常,但如果 map 上有标记簇则无法工作。例如。当我选择 map 上的类别酒吧标记时,类别餐厅消失,但标记簇仍在 map 上。这是我的 intin 函数
我在 python 中使用 folium 包来显示我的数据的 MarkerClusters。 当您没有完全放大时,集群看起来不错,但它们似乎显示该集群内子标记数量的计数。我理解为什么这是默认行为,但出
我是一名优秀的程序员,十分优秀!