diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
index 92c07b8aae75114b2892e04652b4d70278160e34..eb017ef90a755032222d82ba827a8299dabaec6f 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothBean.java
@@ -78,7 +78,8 @@ public class AppleFruitMothBean {
         return em.find(ObservationSite.class, observationSiteId);
     }
 
-    public Kml getObservationSitesKml(Integer season, Integer selectedObservationSiteId, String serverName) {
+    public Kml getObservationSitesKml(Integer season, Integer selectedObservationSiteId, String serverName, Boolean onlyPubliclyAvailable) {
+        onlyPubliclyAvailable = onlyPubliclyAvailable != null ? onlyPubliclyAvailable : true;
         String iconPath = Globals.PROTOCOL + "://" + serverName + "/public/images/";
         // Initialization
         final Vec2 hotspot = new Vec2()
@@ -175,6 +176,10 @@ public class AppleFruitMothBean {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         for(ObservationSite site:sites)
         {
+            if(onlyPubliclyAvailable && !site.getPubliclyAvailable())
+            {
+                continue;
+            }
             Integer warningStatus = 0;
             String remarks = "Varsel ikke oppdatert";
             ObservationSiteSeasonCommonData commonData = site.getCommonDataForSeason(season);
@@ -222,53 +227,7 @@ public class AppleFruitMothBean {
         return kml;
     }
     
-    /*
-    public Kml getObservationSitePointsKml(Integer observationSiteId, String serverName) {
-        
-        ObservationSite observationSite = em.find(ObservationSite.class, observationSiteId);
-        
-        String iconPath = Globals.PROTOCOL + "://" + serverName + "/public/images/";
-        // Initialization
-        final Vec2 hotspot = new Vec2()
-                .withX(0.5)
-                .withXunits(Units.FRACTION)
-                .withY(0)
-                .withYunits(Units.FRACTION);
-        final Kml kml = KmlFactory.createKml();
-        final Document document = kml.createAndSetDocument()
-                .withName("Rognebærmøllstasjon-punkter").withDescription("Oversikt over punkter for rognebærmøllstasjonen " + observationSite.getObservationSiteName());
-        
-        // Adding icons for warning statuses
-        document.createAndAddStyle()
-            .withId("observation_site_point_icon")
-        .createAndSetIconStyle()
-                .withScale(1)
-                .withHotSpot(hotspot)
-                .createAndSetIcon()
-                    .withHref(iconPath + "dot_blue.png");
-        
-        Set<ObservationSitePoint> sitePoints = observationSite.getObservationSitePointSet();
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        for(ObservationSitePoint sitePoint:sitePoints)
-        {
-            
-            final Placemark placemark = document.createAndAddPlacemark()
-                    .withName(sitePoint.getPointName())
-                    .withStyleUrl("#observation_site_point_icon")
-                    .withId(sitePoint.getObservationSitePointId().toString());
-            
-            final Point point = placemark.createAndSetPoint();
-            List<Coordinate> coord = point.createAndSetCoordinates();
-            coord.add(new Coordinate(
-                    sitePoint.getGisId().getGisGeom().getCoordinate().x,
-                    sitePoint.getGisId().getGisGeom().getCoordinate().y,
-                    0
-            ));
-            
-        }
-        return kml;
-    }*/
-
+    
     public ObservationSite storeObservationSite(ObservationSite observationSite) {
         return em.merge(observationSite);
     }
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
index e9ee91698adcdecd1449f7ec47a9084b94876f6e..0fa0defcedac622cfd24fbe6f1c3747f26861df0 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothController.java
@@ -172,6 +172,7 @@ public class AppleFruitMothController extends HttpServlet {
                         {
                             Integer currentSeason = formValidation.getFormField("currentSeason").getValueAsInteger();
                             observationSite.setObservationSiteName(formValidation.getFormField("observationSiteName").getWebValue());
+                            observationSite.setPubliclyAvailable(formValidation.getFormField("publiclyAvailable").getWebValue() != null);
                             ObservationSiteSeasonCommonData ossc = observationSite.getCommonDataForSeason(currentSeason);
                             if(ossc == null)
                             {
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
index dbd2c57059dde9a5a33c250548f4f4d4e432d02d..bcc0d958222c07c70ec39899cf5efcdb9506da4d 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/AppleFruitMothService.java
@@ -48,12 +48,14 @@ public class AppleFruitMothService {
     @GET
     @Path("observationsites/kml/")
     @Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
-    public Response getObservationSitesKML()
+    public Response getObservationSitesKML(
+            @QueryParam("onlyPubliclyAvailable") Boolean onlyPubliclyAvailable
+    )
     {
         Calendar cal = Calendar.getInstance();
         cal.setTime(SystemTime.getSystemTime());
         Integer season = cal.get(Calendar.YEAR);
-        return this.getObservationSitesKML(season, null);
+        return this.getObservationSitesKML(season, null, onlyPubliclyAvailable);
     }
     
     @GET
@@ -61,10 +63,11 @@ public class AppleFruitMothService {
     @Produces("application/vnd.google-earth.kml+xml;charset=utf-8")
     public Response getObservationSitesKML(
             @PathParam("season") Integer season,
-            @QueryParam("selectedObservationSiteId") Integer selectedObservationSiteId
+            @QueryParam("selectedObservationSiteId") Integer selectedObservationSiteId,
+            @QueryParam("onlyPubliclyAvailable") Boolean onlyPubliclyAvailable
     )
     {
-        Kml retVal = SessionControllerGetter.getAppleFruitMothBean().getObservationSitesKml(season, selectedObservationSiteId, ServletUtil.getServerName(httpServletRequest));
+        Kml retVal = SessionControllerGetter.getAppleFruitMothBean().getObservationSitesKml(season, selectedObservationSiteId, ServletUtil.getServerName(httpServletRequest), onlyPubliclyAvailable);
         return Response.ok().entity(retVal).build();
     }
     
diff --git a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
index 3e425dcd7dd80a0846758d94cdec9e4e244f7b94..845c2694ba628b5bdd18c9981e67894752b57c51 100755
--- a/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
+++ b/src/main/java/no/nibio/vips/logic/modules/applefruitmoth/ObservationSite.java
@@ -81,6 +81,8 @@ public class ObservationSite implements Serializable, Comparable {
     private Gis gisId;
     @Transient
     private Date lastUpdatedClusterCount;
+    @Column(name = "publicly_available")
+    private Boolean publiclyAvailable;
 
 
     public ObservationSite() {
@@ -201,4 +203,18 @@ public class ObservationSite implements Serializable, Comparable {
     public void setLastUpdatedClusterCount(Date lastUpdatedClusterCount) {
         this.lastUpdatedClusterCount = lastUpdatedClusterCount;
     }
+
+    /**
+     * @return the publiclyAvailable
+     */
+    public Boolean getPubliclyAvailable() {
+        return publiclyAvailable;
+    }
+
+    /**
+     * @param publiclyAvailable the publiclyAvailable to set
+     */
+    public void setPubliclyAvailable(Boolean publiclyAvailable) {
+        this.publiclyAvailable = publiclyAvailable;
+    }
 }
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
index c39e20255222ce706470b3d2537077fecb568572..dd351cf46dd10c7168938d3affd758ee7ce8d679 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
@@ -478,3 +478,4 @@ archiveUserId=Archive user
 defaultMapZoom=Default map zoom
 defaultMapCenter=Default map center
 organizationStored=Organization was stored
+publiclyAvailable=Publicly available
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
index e0460a5c646641302ac139d8141df9d8264de1f4..3dc73777b4b2afa989d13a9da92a608f89d60015 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_bs.properties
@@ -478,3 +478,4 @@ archiveUserId=Archive user
 defaultMapZoom=Default map zoom
 defaultMapCenter=Default map center
 organizationStored=Organization was stored
+publiclyAvailable=Publicly available
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
index f7e92b32aca946f125b0ce80918cd8a894312c8b..bdf26f2816f35826a00fea933247447e4b33bb08 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_hr.properties
@@ -477,3 +477,4 @@ archiveUserId=Archive user
 defaultMapZoom=Default map zoom
 defaultMapCenter=Default map center
 organizationStored=Organization was stored
+publiclyAvailable=Publicly available
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
index 298e9cd000ee7984350dd1122f7ade8b662a31f0..c27bc21b3eff8d98dfecab11ddc185fdc397125a 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
@@ -478,3 +478,4 @@ archiveUserId=Arkivbruker
 defaultMapZoom=Standard zoomniv\u00e5 p\u00e5 kart
 defaultMapCenter=Standard kartsentrum
 organizationStored=Organisasjonen ble lagret
+publiclyAvailable=Offentlig tilgjengelig
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
index 910852b29a4b4d136837c3b09689a1952ed354c9..7e8b0fa0b202d22079a6ebb3c682a773a32f7795 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_sr.properties
@@ -478,3 +478,4 @@ archiveUserId=Archive user
 defaultMapZoom=Default map zoom
 defaultMapCenter=Default map center
 organizationStored=Organization was stored
+publiclyAvailable=Publicly available
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties
index bb7cb6054e91a132ef91d5e4f0c3f4e0cbbba986..4260156ed403101d6a0b4655c02f9be7e1b863ca 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_zh_CN.properties
@@ -475,3 +475,4 @@ archiveUserId=Archive user
 defaultMapZoom=Default map zoom
 defaultMapCenter=Default map center
 organizationStored=Organization was stored
+publiclyAvailable=Publicly available
diff --git a/src/main/webapp/formdefinitions/appleFruitMothStationForm.json b/src/main/webapp/formdefinitions/appleFruitMothStationForm.json
index e5e22d4611d28cf3d0df5684ebab85444a6618b5..cec171ad58c8eb8607190424cf90a06a34d14a2a 100755
--- a/src/main/webapp/formdefinitions/appleFruitMothStationForm.json
+++ b/src/main/webapp/formdefinitions/appleFruitMothStationForm.json
@@ -28,6 +28,11 @@
             "dataType" : "STRING",
             "required" : true
         },
+        {
+            "name" : "publiclyAvailable",
+            "dataType" : "STRING",
+            "required" : false
+        },
         {
             "name" : "currentSeason",
             "dataType" : "INTEGER",
diff --git a/src/main/webapp/js/appleFruitMothObservationSiteMap.js b/src/main/webapp/js/appleFruitMothObservationSiteMap.js
index e57a2a1dc586b73576fa92fc372028c6b3f804b7..d859edea2bc0f074a316a928db4c07e606585dfa 100755
--- a/src/main/webapp/js/appleFruitMothObservationSiteMap.js
+++ b/src/main/webapp/js/appleFruitMothObservationSiteMap.js
@@ -54,7 +54,7 @@ function initMap(center, observationSiteId, currentSeason)
     
     var sitePointsLayer = new ol.layer.Vector({
             source: new ol.source.Vector({
-                    url: "/rest/applefruitmoth/observationsites/kml/" + currentSeason + "/?selectedObservationSiteId=" + observationSiteId,
+                    url: "/rest/applefruitmoth/observationsites/kml/" + currentSeason + "/?onlyPubliclyAvailable=false&selectedObservationSiteId=" + observationSiteId,
                     format: new ol.format.KML({"extractAttributes":true}),
                     projection: ol.proj.get('EPSG:3857')
             })
diff --git a/src/main/webapp/js/appleFruitMothObservationSitesMap.js b/src/main/webapp/js/appleFruitMothObservationSitesMap.js
index dd2e3e5a139ba6b22bf04fa33d405b3905594850..d6675744544d360eb257553906692ffab665562e 100755
--- a/src/main/webapp/js/appleFruitMothObservationSitesMap.js
+++ b/src/main/webapp/js/appleFruitMothObservationSitesMap.js
@@ -32,7 +32,7 @@ var initMap = function(container, mapAttribution)
 	
 	forecastLayer = new ol.layer.Vector({
 		source: new ol.source.Vector({
-			url: "/rest/applefruitmoth/observationsites/kml/",
+			url: "/rest/applefruitmoth/observationsites/kml/?onlyPubliclyAvailable=false",
 			format: new ol.format.KML({"extractAttributes":true}),
 			projection: ol.proj.get('EPSG:3857')
 		})
diff --git a/src/main/webapp/templates/appleFruitMothStationForm.ftl b/src/main/webapp/templates/appleFruitMothStationForm.ftl
index a5445f28855a10731cf926bf431098b3523f9c21..bb7604e85e50a2d6375fdb149ff96679f6d98816 100755
--- a/src/main/webapp/templates/appleFruitMothStationForm.ftl
+++ b/src/main/webapp/templates/appleFruitMothStationForm.ftl
@@ -54,6 +54,14 @@
 				    <input type="text" class="form-control" name="observationSiteName" placeholder="${i18nBundle.observationSiteName}" value="${observationSite.observationSiteName!""}" onblur="validateField(this);" />
 				    <span class="help-block" id="${formId}_observationSiteName_validation"></span>
 				  </div>
+                                <div class="form-group">
+                                    <div class="checkbox">
+                                            <label>
+                                              <input type="checkbox" name="publiclyAvailable" value="true"<#if (observationSite.publiclyAvailable?has_content && observationSite.publiclyAvailable == true)> checked="checked"</#if>/>
+                                              ${i18nBundle.publiclyAvailable}
+                                            </label>
+                                    </div>
+                                </div>
 				  <div class="form-group">
 				    <label for="currentSeason">${i18nBundle.season}</label>
 				    <select class="form-control" name="currentSeason" onchange="if(confirm('${i18nBundle.appleFruitMothChangeSeasonConfirm}')){window.location.href='/applefruitmoth?action=viewObservationSite&observationSiteId=${observationSite.observationSiteId}&currentSeason=' + this.options[this.options.selectedIndex].value;}">