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 371c54a886e0d3644e001e800c0e22ebc2497e44..80a357d25a61df2d96e5e3f7fbbfb66433f71d15 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
@@ -308,6 +308,8 @@ fieldSowingDate = Field sowing date
 
 fields = Fields
 
+traps = Traps
+
 filter = Filter
 
 filterList = Filter list
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 e95e775b8edf19dd0387429372de2d01c205aee8..87647c45dde3c281d5d68f2586191610a2faee80 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
@@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date
 
 fields = Fields
 
+traps = Traps
+
 filter = Filter
 
 filterList = Filter list
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 994f99dae2373c6bb287931b341d014cc1584640..351048a470187ba55766c9205a30a2a9403a2f17 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
@@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date
 
 fields = Fields
 
+traps = Traps
+
 filter = Filter
 
 filterList = Filter list
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 e8bdd3980144cbdb23e94bbd9ac0d45469463b41..1e03844cc22e2c12fe721b2eb34d16f56e097f44 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
@@ -308,6 +308,8 @@ fieldSowingDate = S\u00e5dato for felt
 
 fields = Felt
 
+traps = Feller
+
 filter = Filter
 
 filterList = Filtr\u00e9r lista
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 33ee218c4ff36c296acf147cefdfb87f0bf9ba48..1a791041100981ea65f2c5acf16d66132a05823d 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
@@ -306,6 +306,8 @@ fieldSowingDate = Field sowing date
 
 fields = Fields
 
+traps = Traps
+
 filter = Filter
 
 filterList = Filter list
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 e5f1e363df022af7d9242c0e0f9ff8cf139f93a1..0384f07d5ec425c9d03406f2c84337117731f304 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
@@ -304,6 +304,8 @@ fieldSowingDate = Field sowing date
 
 fields = Fields
 
+traps = Traps
+
 filter = \u8fc7\u6ee4\u5668
 
 filterList = Filter list
diff --git a/src/main/webapp/templates/observationForm.ftl b/src/main/webapp/templates/observationForm.ftl
index d34ca3f43e38262ce05a66206edcf711a92d0d25..4945cddf3dc3a466fb916e030ac26cb8e97f097a 100755
--- a/src/main/webapp/templates/observationForm.ftl
+++ b/src/main/webapp/templates/observationForm.ftl
@@ -230,38 +230,41 @@
 		
 		var allPois = [];
 		
-                /**
-                 * Fetches locations, farms, fields and weather stations, renders the list
-                 */
-		function refreshLocationPointOfInterests(pointOfInterestId)
+        /**
+         * Fetches locations, farms, fields, traps and weather stations, renders the list
+         */
+		function refreshLocationPointOfInterests(selectedPointOfInterestId)
 		{
-                    var poiTypes = ["${i18nBundle.genericPlaces}","${i18nBundle.weatherStations}","${i18nBundle.farms}","${i18nBundle.fields}"];
-                    $.getJSON("/rest/poi/user", function( json ) {
-                                    allPois = json;
-                                    var theList = document.getElementById("locationPointOfInterestId");
-                                    theList.options.length = 1;
-                                    // Locations first, weather stations next
-                                    for(var h=0;h<poiTypes.length;h++)
-                                    {
-                                        var option = new Option("-- " + poiTypes[h] + " --","-1");
-                                        theList.options[theList.options.length] = option;
-                                        for(var i=0;i< allPois.length;i++)
-                                        {
-                                            var poi = allPois[i];
-                                            if(poi.pointOfInterestTypeId == h)
-                                            {
-                                                var option = new Option(poi.name, poi.pointOfInterestId);
-                                                if(poi.pointOfInterestId == pointOfInterestId)
-                                                {
-                                                        option.selected=true;
-                                                }
-                                                theList.options[theList.options.length] = option;
-                                            }
-                                        }
-                                    }
-                                    showCorrectMap();
+            const poiTypes = {
+                0: "${i18nBundle.genericPlaces}",
+                1: "${i18nBundle.weatherStations}",
+                2: "${i18nBundle.farms}",
+                3: "${i18nBundle.fields}",
+                5: "${i18nBundle.traps}"
+            };
+            $.getJSON("/rest/poi/user", function(json) {
+                const allPois = json;
+                const poiListElement = document.getElementById("locationPointOfInterestId");
+                poiListElement.options.length = 1;
+                // Iterate through each point of interest type
+                for (const [typeId, typeName] of Object.entries(poiTypes)) {
+                    poiListElement.options[poiListElement.options.length] = new Option("-- " + typeName + " --", "-1");
+
+                    // Iterate through all POIs and add them to the list if they match the type
+                    for (let i = 0; i < allPois.length; i++) {
+                        const poi = allPois[i];
+
+                        if (poi.pointOfInterestTypeId == typeId) {
+                            const poiOption = new Option(poi.name, poi.pointOfInterestId);
+                            if (poi.pointOfInterestId === selectedPointOfInterestId) {
+                                poiOption.selected = true;
                             }
-                    );
+                            poiListElement.options[poiListElement.options.length] = poiOption;
+                        }
+                    }
+                }
+                showCorrectMap();
+            });
 		}
 		
 		
@@ -515,7 +518,7 @@
 			  <input type="hidden" name="observationData" value=""/>
 			  <input type="hidden" name="observationId" value="${observation.observationId!"-1"}"/>
 			  <!--button type="button" onclick="var theForm=document.getElementById('observationForm');theForm['geoInfo'].value=getFeatures();try{mw.save();theForm['observationData'].value=JSON.stringify(mw.toInspect);return validateForm(theForm) && validateGIS(theForm);}catch(e){console.log(e.message);console.log(e);return false;}">Test</button-->
-			  <#if observation.user?has_content>
+                <#if observation.user?has_content>
                           <div class="form-group">
                             <label>${i18nBundle.observer}: ${observation.user.firstName} ${observation.user.lastName}</label>
                           </div>