diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js
index 96e3965..e65f253 100644
--- a/overviewer_core/data/js_src/util.js
+++ b/overviewer_core/data/js_src/util.js
@@ -158,21 +158,6 @@ overviewer.util = {
},
- 'createMarkerInfoWindow': function(marker) {
- var windowContent = '

' + marker.title.replace(/\n/g,'
') + '
';
- var infowindow = new google.maps.InfoWindow({
- 'content': windowContent
- });
- google.maps.event.addListener(marker, 'click', function() {
- if (overviewer.collections.infoWindow) {
- overviewer.collections.infoWindow.close();
- }
- infowindow.open(overviewer.map, marker);
- overviewer.collections.infoWindow = infowindow;
- });
- },
-
/**
* This adds some methods to these classes because Javascript is stupid
@@ -432,15 +417,15 @@ overviewer.util = {
var windowContent = '
' + marker.title.replace(/\n/g,'
') + '
';
var infowindow = new google.maps.InfoWindow({
- 'content': windowContent
- });
+ 'content': windowContent
+ });
google.maps.event.addListener(marker, 'click', function() {
- if (overviewer.collections.infoWindow) {
+ if (overviewer.collections.infoWindow) {
overviewer.collections.infoWindow.close();
- }
- infowindow.open(overviewer.map, marker);
- overviewer.collections.infoWindow = infowindow;
- });
+ }
+ infowindow.open(overviewer.map, marker);
+ overviewer.collections.infoWindow = infowindow;
+ });
},
'initHash': function() {
if(window.location.hash.split("/").length > 1) {
diff --git a/overviewer_core/data/js_src/views.js b/overviewer_core/data/js_src/views.js
index 4a0e48d..cfc6e2f 100644
--- a/overviewer_core/data/js_src/views.js
+++ b/overviewer_core/data/js_src/views.js
@@ -383,23 +383,28 @@ overviewer.views.SignControlView = Backbone.View.extend({
// workaround IE issue. bah!
if (typeof markers=="undefined") { return; }
me.render();
- // hide markers, if necessary
+
+
+ // hide markers that are part of other tilesets than this
// for each markerSet, check:
// if the markerSet isnot part of this tileset, hide all of the markers
var curMarkerSet = overviewer.mapView.options.currentTileSet.attributes.path;
var dataRoot = markers[curMarkerSet];
- if (!dataRoot) {
- // this tileset has no signs, so hide all of them
- for (markerSet in markersDB) {
- if (markersDB[markerSet].created) {
- jQuery.each(markersDB[markerSet].raw, function(i, elem) {
- elem.markerObj.setVisible(false);
- });
- }
- }
- return;
- }
+ jQuery.each(markers, function(key, markerSet) {
+ if (key != curMarkerSet) {
+ jQuery.each(markerSet, function(i, markerGroup) {
+ if (typeof markerGroup.markerObjs != "undefined") {
+ jQuery.each(markerGroup.markerObjs, function(j, markerObj) {
+ markerObj.setVisible(false);
+ });
+ }
+ });
+ }
+ });
+
+ return;
+
var groupsForThisTileSet = jQuery.map(dataRoot, function(elem, i) { return elem.groupName;})
for (markerSet in markersDB) {
if (jQuery.inArray(markerSet, groupsForThisTileSet) == -1){
@@ -457,19 +462,25 @@ overviewer.views.SignControlView = Backbone.View.extend({
// add some menus
for (i in dataRoot) {
var group = dataRoot[i];
- this.addItem({label: group.displayName, groupName:group.groupName, action:function(this_item, checked) {
- markersDB[this_item.groupName].checked = checked;
- jQuery.each(markersDB[this_item.groupName].raw, function(i, elem) {
- elem.markerObj.setVisible(checked);
+ this.addItem({group: group, action:function(this_item, checked) {
+ this_item.group.checked = checked;
+ jQuery.each(this_item.group.markerObjs, function(i, markerObj) {
+ markerObj.setVisible(checked);
});
}});
+ if (group.checked) {
+ jQuery.each(group.markerObjs, function(i, markerObj) {
+ markerObj.setVisible(true);
+ });
+ }
}
//dataRoot['markers'] = [];
//
for (i in dataRoot) {
var groupName = dataRoot[i].groupName;
- if (!markersDB[groupName].created) {
+ if (!dataRoot[i].created) {
+ dataRoot[i].markerObjs = [];
for (j in markersDB[groupName].raw) {
var entity = markersDB[groupName].raw[j];
if (entity['icon']) {
@@ -492,9 +503,9 @@ overviewer.views.SignControlView = Backbone.View.extend({
overviewer.util.createMarkerInfoWindow(marker);
}
}
- jQuery.extend(entity, {markerObj: marker});
+ dataRoot[i].markerObjs.push(marker);
}
- markersDB[groupName].created = true;
+ dataRoot[i].created = true;
}
}
@@ -505,9 +516,13 @@ overviewer.views.SignControlView = Backbone.View.extend({
var itemInput = document.createElement('input');
itemInput.type='checkbox';
+ if (item.group.checked) {
+ itemInput.checked="true";
+ }
+
// give it a name
- $(itemInput).data('label',item.label);
- $(itemInput).attr("_mc_groupname", item.groupName);
+ $(itemInput).data('label',item.group.displayName);
+ $(itemInput).attr("_mc_groupname", item.group.gropuName);
jQuery(itemInput).click((function(local_item) {
return function(e) {
item.action(local_item, e.target.checked);
@@ -519,9 +534,9 @@ overviewer.views.SignControlView = Backbone.View.extend({
var textNode = document.createElement('text');
if(item.icon) {
textNode.innerHTML = '
' + item.label + '
';
+ item.icon + '">' + item.group.displayName + '
';
} else {
- textNode.innerHTML = item.label + '
';
+ textNode.innerHTML = item.group.displayName + '
';
}
itemDiv.appendChild(textNode);