0

fixed region group handling to actually use matcher, and to show non-matched regions

This commit is contained in:
Aaron Griffith
2011-07-22 08:19:18 -04:00
parent 0a119202f6
commit ef6ad96080

View File

@@ -394,16 +394,11 @@ var overviewer = {
point.x, point.y, point.z)); point.x, point.y, point.z));
} }
for (k in overviewerConfig.objectGroups.regions) {
var regionGroup = overviewerConfig.objectGroups.regions[k];
var clickable = regionGroup.clickable;
var label = regionGroup.label;
if(region.label) { if (region.label) {
var name = region.label var name = region.label;
} else { } else {
var name = 'rawr'; var name = "rawr";
clickable = false; // if it doesn't have a name, we dont have to show it.
} }
if(region.opacity) { if(region.opacity) {
@@ -414,39 +409,61 @@ var overviewer = {
var fillOpacity = region.fillOpacity; var fillOpacity = region.fillOpacity;
} }
var shapeOptions = {
'name': name,
'geodesic': false,
'map': null,
'strokeColor': region.color,
'strokeOpacity': strokeOpacity,
'strokeWeight': overviewerConfig.CONST.regionStrokeWeight,
'zIndex': j
};
if (region.closed) { if (region.closed) {
var shape = new google.maps.Polygon({ shapeOptions["fillColor"] = region.color;
'name': name, shapeOptions["fillOpacity"] = fillOpacity;
'clickable': clickable, shapeOptions["paths"] = converted;
'geodesic': false,
'map': null,
'strokeColor': region.color,
'strokeOpacity': strokeOpacity,
'strokeWeight': overviewerConfig.CONST.regionStrokeWeight,
'fillColor': region.color,
'fillOpacity': fillOpacity,
'zIndex': j,
'paths': converted
});
} else { } else {
var shape = new google.maps.Polyline({ shapeOptions["path"] = converted;
'name': name,
'clickable': clickable,
'geodesic': false,
'map': null,
'strokeColor': region.color,
'strokeOpacity': strokeOpacity,
'strokeWeight': overviewerConfig.CONST.regionStrokeWeight,
'zIndex': j,
'path': converted
});
} }
var matched = false;
for (k in overviewerConfig.objectGroups.regions) {
var regionGroup = overviewerConfig.objectGroups.regions[k];
var clickable = regionGroup.clickable;
var label = regionGroup.label;
if (!regionGroup.match(region))
continue;
matched = true;
if (!region.label) {
clickable = false; // if it doesn't have a name, we dont have to show it.
}
if (region.closed) {
var shape = new google.maps.Polygon(shapeOptions);
} else {
var shape = new google.maps.Polyline(shapeOptions);
}
overviewer.collections.regions[label].push(shape); overviewer.collections.regions[label].push(shape);
if (clickable) { if (clickable) {
overviewer.util.createRegionInfoWindow(shape); overviewer.util.createRegionInfoWindow(shape);
} }
} }
// if we haven't matched anything, go ahead and add it
if (!matched) {
if (region.closed) {
var shape = new google.maps.Polygon(shapeOptions);
} else {
var shape = new google.maps.Polyline(shapeOptions);
}
shape.setMap(overviewer.map);
}
} }
} }
}, },