diff --git a/src/locales/en.json b/src/locales/en.json
index f5a5e7cd609a9f583367317654a8696f18d964b9..955cc4fc58cffacf9f2cbdec5f529493e5a5bf47 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -183,7 +183,8 @@
       "noPermission": "You don't have access to this page",
       "tableHeader1": "Address line 1",
       "tableHeader2": "Address line 2",
-      "buttonDelete": "Delete"
+      "buttonDelete": "Delete",
+      "buttonAdd": "Add"
     }
   },
   "project": {
diff --git a/src/locales/es.json b/src/locales/es.json
index c61ea85a8e0c348e41e11e6ee1368a74acd5d8a3..9ad1628bdc0e1a07e0bb13da6f26d4aaab0e5370 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -183,7 +183,8 @@
       "noPermission": "No tiene permiso",
       "tableHeader1": "Dirección línea 1",
       "tableHeader2": "Dirección línea 2",
-      "buttonDelete": "Eliminar"
+      "buttonDelete": "Eliminar",
+      "buttonAdd": "Añadir"
     }
   },
   "project": {
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 433cbf35c58f5cdd36df9e222ac2b9a549107408..3cb4ba478ff440153bf0a4370726066a79521424 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -181,7 +181,8 @@
       "noPermission": "Vous n'avez pas la permission",
       "tableHeader1": "Adresse ligne 1",
       "tableHeader2": "Adresse ligne 2",
-      "buttonDelete": "Effacer"
+      "buttonDelete": "Effacer",
+      "buttonAdd": "Ajouter"
     }
   },
   "project": {
diff --git a/src/scripts/hubl-geocoord.js b/src/scripts/hubl-geocoord.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f4d3de2c3075ddef4cab1d7cf9d000221c27ff0
--- /dev/null
+++ b/src/scripts/hubl-geocoord.js
@@ -0,0 +1,33 @@
+/*
+  Geocoord helper using Nominatim
+  Usage:
+  const madrid = await hubl.geocoord('Madrid');
+  madrid == ["-3.7035825", "40.4167047"]
+*/
+window.hubl.geocoord = async (address = false) => {
+  if (address) {
+    const nominatim = await fetch('https://nominatim.openstreetmap.org/?format=geocodejson&limit=1&q=' + encodeURI(address));
+    const response = await nominatim.json();
+    if (response.features[0]) {
+      const coords = response.features[0].geometry.coordinates;
+      if (coords[0] && coords[1]) {
+        return [String(coords[0]), String(coords[1])];
+      }
+    } else {
+      console.error("Address not found");
+    }
+  } else {
+    console.error("Missing address");
+  }
+  return ["-47.15", "-123.716667"];
+}
+
+window.hubl.geocalc = (element) => {
+  const editionForm = element.parentElement.parentElement.parentElement.parentElement;
+  window.hubl.geocoord(editionForm.querySelector('input[name="address_line1"]').value + " " + editionForm.querySelector('input[name="address_line2"]').value).then(coords => {
+    editionForm.querySelector('input[name="lat"]').value = coords[0];
+    editionForm.querySelector('input[name="lng"]').value = coords[1];
+    editionForm.querySelector('input[type="submit"]').click();
+  });
+  return false;
+}
\ No newline at end of file
diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug
index 3ac610b45b9af990f6a513ffbefdb766add0dd58..d89dc66cc40eba58f1e79f27be390fc4b41695e4 100644
--- a/src/views/partials/communities/page-community-edit.pug
+++ b/src/views/partials/communities/page-community-edit.pug
@@ -133,7 +133,7 @@ div.bg-color-white
           solid-form.form.table-body.edit-address(
             bind-resources
             nested-field="addresses"
-            fields="segment1(address_line1), segment2(address_line2), segment3(deleteButton)"
+            fields="segment1(address_line1), segment2(address_line2), lat, lng, segment3(addButton)"
 
             placeholder-address_line1=""
             placeholder-address_line2=""
@@ -145,12 +145,15 @@ div.bg-color-white
             class-address_line1="segment full text-small"
             class-address_line2="segment full text-small"
 
+            class-lat="hidden"
+            class-lng="hidden"
+
             widget-community="solid-form-hidden"
             widget-address_line1="solid-form-placeholder-text"
             widget-address_line2="solid-form-placeholder-text"
-
-            action-deleteButton=""
-            widget-deleteButton=`hubl-communities-edit-delete-button`
+            widget-lat="solid-form-hidden"
+            widget-lng="solid-form-hidden"
+            widget-addButton=`hubl-communities-edit-add-button`
 
             data-trans="placeholder-address_line1=communities.edit.labelAddressLine1;placeholder-address_line2=communities.edit.labelAddressLine2"     
           )
diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug
index 7a4792841b069d498c3d5857d237edf9193873fa..ee38e845af56d5242696e3af436dd21d2178fe1c 100644
--- a/src/views/partials/widgets.pug
+++ b/src/views/partials/widgets.pug
@@ -22,6 +22,7 @@ include widgets/hubl-circle-team-contact.pug
 include widgets/hubl-circle-user-admin.pug
 include widgets/hubl-communities-counter-alternate.pug
 include widgets/hubl-communities-edit-button.pug
+include widgets/hubl-communities-edit-add-button.pug
 include widgets/hubl-communities-edit-email.pug
 include widgets/hubl-communities-edit-website.pug
 include widgets/hubl-communities-logo.pug
diff --git a/src/views/partials/widgets/hubl-communities-edit-add-button.pug b/src/views/partials/widgets/hubl-communities-edit-add-button.pug
new file mode 100644
index 0000000000000000000000000000000000000000..85b785899d6b6026ad0df5e657e88908e2b241a2
--- /dev/null
+++ b/src/views/partials/widgets/hubl-communities-edit-add-button.pug
@@ -0,0 +1,11 @@
+if componentSet.has('communities') && getRoute('communities')
+  solid-widget(name='hubl-communities-edit-add-button')
+    template
+      div(
+        class="segment text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered"
+      )
+        button.form-sub(
+          data-trans="communities.edit.buttonAdd"
+          type="button"
+          onclick="window.hubl.geocalc(this);"
+        )
\ No newline at end of file