diff --git a/htmleditor/admin.py b/htmleditor/admin.py
index 7d160484f48c0efa1f794e82cdc05c85236adf70..b90e84f13d0e31823596449d65ff86c601825946 100644
--- a/htmleditor/admin.py
+++ b/htmleditor/admin.py
@@ -111,7 +111,8 @@ class NavigationNodeAdmin(SortableAdmin):
     fieldsets = (
         (None, {
             'fields': (
-                'name', 'parent', 'document', 'show_title', 'view', 'icon')
+                'name', 'parent', 'document', 'show_title', 'view', 'url_hash',
+                'icon')
         }),
         ('Advanced', {
             'classes': ('collapse',),
diff --git a/htmleditor/migrations/0030_navigationnode_url_hash.py b/htmleditor/migrations/0030_navigationnode_url_hash.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2301c1e301be1eedc04787f115e5b1bc538ac79
--- /dev/null
+++ b/htmleditor/migrations/0030_navigationnode_url_hash.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.1 on 2016-07-08 23:08
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('htmleditor', '0029_document_content'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='navigationnode',
+            name='url_hash',
+            field=models.CharField(blank=True, default='', help_text='The fragment identifier, appended to the url. <kbd>Example: 123 -> /my_url/#123</kbd><br>For Map Locations: <kbd>All-map</kbd>, <kbd>Tournament_Site-map</kbd>, <kbd>Practice_Court-map</kbd>, <kbd>Parking-map</kbd>, <kbd>Hotel-map</kbd>, and <kbd>Hospital-map</kbd>.', max_length=100, verbose_name='hash'),
+        ),
+    ]
diff --git a/htmleditor/models.py b/htmleditor/models.py
index a3c4d07d73109b7d38c8c61f00ee06bb4464cd2d..cc83b4457dba4abd7f3437598953afee16cb41d4 100644
--- a/htmleditor/models.py
+++ b/htmleditor/models.py
@@ -247,6 +247,14 @@ class NavigationNode(SortableMixin):
     view = models.CharField(
         max_length=MAX_LENGTH, choices=VIEW_CHOICES, blank=True, default="",
         help_text="This overrides document and any tab documents if set.")
+    url_hash = models.CharField(
+        max_length=MAX_LENGTH, blank=True, default="", verbose_name="hash",
+        help_text="The fragment identifier, appended to the url. " +
+        "<kbd>Example: 123 -> /my_url/#123</kbd><br>" +
+        "For Map Locations: <kbd>All-map</kbd>, " +
+        "<kbd>Tournament_Site-map</kbd>, <kbd>Practice_Court-map</kbd>, " +
+        "<kbd>Parking-map</kbd>, <kbd>Hotel-map</kbd>, and " +
+        "<kbd>Hospital-map</kbd>.")
     slug = models.SlugField()
     icon = models.ForeignKey('Image', models.SET_NULL, blank=True, null=True)
 
diff --git a/usta/templates/usta/main_menu.html b/usta/templates/usta/main_menu.html
index 498f72e34d71cc0675b35186e0131dd7136f354a..6b94bb97aa5dd0ab6e278dae33110b7185b80602 100644
--- a/usta/templates/usta/main_menu.html
+++ b/usta/templates/usta/main_menu.html
@@ -9,10 +9,10 @@
                         {# Hide links to alumni reunion form, if disabled #}
                         {% if not SiteSettings.show_reunion_form and child.view == "usta:alumni_reunion_form" %}
                         {% else %}
-                        <li class="nav-sublink"><a href="{% url child.view %}">{{ child.name }}</a></li>
+                        <li class="nav-sublink"><a href="{% url child.view %}{% if child.url_hash %}#{{ child.url_hash|urlencode }}{% endif %}">{{ child.name }}</a></li>
                         {% endif %}
                     {% elif child.path %}
-                        <li class="nav-sublink"><a href="{% url 'htmleditor:view' child.path %}">{{ child.name }}</a></li>
+                        <li class="nav-sublink"><a href="{% url 'htmleditor:view' child.path %}{% if child.url_hash %}#{{ child.url_hash|urlencode }}{% endif %}">{{ child.name }}</a></li>
                     {% endif %}
                 {% endif %}
             {% endfor %}
@@ -24,12 +24,12 @@
             {% if not SiteSettings.show_reunion_form and parent.view == "usta:alumni_reunion_form" %}
             {% else %}
             <li class="nav-link">
-                <a href="{% url parent.view %}">{% if parent.icon %}<img alt="{{ parent.icon.alt_text }}" src="{{ parent.icon.url }}">{% endif %}{{ parent.name }}</a>
+                <a href="{% url parent.view %}{% if parent.url_hash %}#{{ parent.url_hash|urlencode }}{% endif %}">{% if parent.icon %}<img alt="{{ parent.icon.alt_text }}" src="{{ parent.icon.url }}">{% endif %}{{ parent.name }}</a>
             </li>
             {% endif %}
         {% elif parent.path %}
             <li class="nav-link">
-                <a href="{% url 'htmleditor:view' parent.path %}">{% if parent.icon %}<img alt="{{ parent.icon.alt_text }}" src="{{ parent.icon.url }}">{% endif %}{{ parent.name }}</a>
+                <a href="{% url 'htmleditor:view' parent.path %}{% if parent.url_hash %}#{{ parent.url_hash|urlencode }}{% endif %}">{% if parent.icon %}<img alt="{{ parent.icon.alt_text }}" src="{{ parent.icon.url }}">{% endif %}{{ parent.name }}</a>
             </li>
         {% endif %}
     {% endif %}
diff --git a/usta/templates/usta/map.html b/usta/templates/usta/map.html
index 66dc047ab874f4b2243686c9736c4c2c58558717..b8eef5fb82b9489cb44f898abe10e452c1896d0b 100644
--- a/usta/templates/usta/map.html
+++ b/usta/templates/usta/map.html
@@ -11,7 +11,7 @@
 
 {% block main %}
 <h1>Map Locations</h1>
-<div id="map"></div>
+<div id="map">Note: Javascript is disabled. Unable to load map.</div>
 <div id="map-checkbox-wrapper">
     {% for category, places in locations.items %}
         {% if places.0 %}{# If there are any items of this category #}
@@ -149,6 +149,7 @@ function onMapButtonClick(checkbox, list) {
     var table = document.getElementById(checkbox.value);
     //console.log("Table: ", table);
     if (checkbox.checked) {
+        window.location.replace("#" + checkbox.value + "-map");
         setMap(list, map);
         if (table != null) {
             table.style.display = "block";
@@ -260,11 +261,31 @@ function initMap() {
     // Insert helpful text for checkboxes.
     $("#map-checkbox-wrapper").append("<p class='map-helper-text'>Click on a checkbox to show the corresponding map info and tables. Click again to hide the corresponding map info and tables.</p>");
 
-    // Uncheck all checkboxes except Tournament site, initially.
-    $("#Practice_Court-checkbox").click();
-    $("#Parking-checkbox").click();
-    $("#Hotel-checkbox").click();
-    $("#Hospital-checkbox").click();
+    // Hide options if not 'all-map'
+    if (window.location.hash != "#All-map") {
+        // Uncheck all checkboxes
+        $("#Tournament_Site-checkbox").click();
+        $("#Practice_Court-checkbox").click();
+        $("#Parking-checkbox").click();
+        $("#Hotel-checkbox").click();
+        $("#Hospital-checkbox").click();
+
+        // If url set, show proper one, otherwise show Tournament Site
+        if (window.location.hash == "#Tournament_Site-map") {
+            $("#Tournament_Site-checkbox").click();
+        } else if (window.location.hash == "#Practice_Court-map") {
+            $("#Practice_Court-checkbox").click();
+        } else if (window.location.hash == "#Parking-map") {
+            $("#Parking-checkbox").click();
+        } else if (window.location.hash == "#Hotel-map") {
+            $("#Hotel-checkbox").click();
+        } else if (window.location.hash == "#Hospital-map") {
+            $("#Hospital-checkbox").click();
+        } else {
+            // default
+            $("#Tournament_Site-checkbox").click();
+        }
+    }
 }
 </script>
 <script src="https://maps.googleapis.com/maps/api/js?key={{ GOOGLE_API_KEY }}&signed_in=true&callback=initMap" async defer></script>