过滤标记谷歌地图API V3
Filtering Markers Google Maps API V3
我需要你的帮助:
目前我在Google Maps电子表格中有一组数据。有几件事我需要过滤这些数据。例如类别和类型。
这些是使用JSON收集的:
/**
* Called when JSON is loaded. Creates sidebar if param_sideBar is true.
* Sorts rows if param_rankColumn is valid column. Iterates through worksheet rows,
* creating marker and sidebar entries for each row.
* @param {JSON} json Worksheet feed
*/
function cm_loadMapJSON(json) {
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
if(entry["gsx$" + param_latColumn]) {
var lat = parseFloat(entry["gsx$" + param_latColumn].$t);
var lng = parseFloat(entry["gsx$" + param_lngColumn].$t);
var point = new google.maps.LatLng(lat,lng);
var html = "<div class='infoscherm' style='font-size:12px'>";
html += "<h2>" + entry["gsx$"+param_titleColumn].$t
+ "</h2>";
var label = entry["gsx$"+param_titleColumn].$t;
if(entry["gsx$" + param_screenCategory]) {
html += "<h3>" + "Screen Category/Purpose: " + "</h3>" + "<p>" + entry["gsx$"+param_screenCategory].$t + "</p>";
}
var screentype = entry["gsx$"+param_screenType].$t;
if(entry["gsx$" + param_screenType]) {
html += "<h3>" + "Screen Type: " + "</h3>" + "<p>" + entry["gsx$"+param_screenType].$t + "</p>";
}
if(entry["gsx$" + param_publicSpace]) {
html += "<h3>" + "Type of Public Space: " + "</h3>" + "<p>" + entry["gsx$"+param_publicSpace].$t + "</p>";
}
var space = entry["gsx$"+param_publicSpace].$t;
if(entry["gsx$" + param_screenInteraction]) {
html += "<h3>" + "Type of interaction: " + "</h3>" + "<p>" + entry["gsx$"+param_screenInteraction].$t + "</p>";
}
if(entry["gsx$" + param_descriptionColumn]) {
html += "<h3>" + "Description: " + "</h3>" + "<p>" + entry["gsx$"+param_descriptionColumn].$t + "</p>";
}
if(entry["gsx$" + param_screenAddress]) {
html += "<h3>" + "Screen Location: " + "</h3>" + "<p>" + entry["gsx$"+param_screenAddress].$t + "</p>";
}
html += "</div>";
// create the marker
var marker = cm_createMarker(kaart,point,label,html,screentype,space);
// cm_map.addOverlay(marker);
cm_mapMarkers.push(marker);
cm_mapHTMLS.push(html);
bounds.extend(point);
}
}
kaart.fitBounds(bounds);
kaart.setCenter(bounds.getCenter());
}
现在我希望能够过滤位于数组中的标记。因此,只显示符合过滤器的标记。
此函数从地图中删除所有标记。我正在考虑修改这个函数,为标记创建一个良好的动态过滤器。但是我想不出来。任何帮助吗?或者是其他更好的工作方式?
function clearOverlays() {
if (cm_mapMarkers) {
for (i in cm_mapMarkers) {
cm_mapMarkers[i].setMap(null);
}
}
}
thank x In advance
您需要并行数组或键值数组,例如:
cm_mapMarkers.push({ point: marker, category: 'something' });
然后
function showSome(categoryName) {
if (cm_mapMarkers) {
for (var i = 0, marker; marker = cm_mapMarkers[++i]; ) {
if(marker.category == categoryName){
// do something with this marker
}else{
// do or do not with others.
}
}
}
}
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 标记的实时更新,无需加载页面谷歌地图API V3
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 如何在多承诺链中处理谷歌地图API V3事件
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 使用Google Maps JavaScript API v3和Geocoding API映射多个位置
- 使用谷歌地图api v3自动完成字段(法国大道、邮编、城市)
- 如何在谷歌地图api v3中获得无公里驾驶距离
- 如何在Maps API v3.中更改多段线的路径
- 谷歌地图API v3:处理使用限制限制
- gmaps API v3在IE上加载非常慢
- 在谷歌api v3中使用地理自动完成功能获取邮政编码
- markrimage在谷歌地图api v3中的特定位置后消失
- 如何修改此功能以获得最受欢迎的视频?(YouTube API v3)
- 映射API v3标记在单击时消失
- 如何限制谷歌地图API V3半径搜索仅限于圆圈内的标记
- 谷歌应用程序脚本html服务和加载谷歌地图javascript api V3
- 加载Google MAPS API v3的JSON数据
- 没有显示带有Infobox PHP/SQL的Google Map API v3