Ver Fonte

fix: реверс адреса (было задом наперёд)

neyrogovnarik há 1 mês atrás
pai
commit
d878df5a12
1 ficheiros alterados com 16 adições e 1 exclusões
  1. 16 1
      backend/internal/handlers/geocode.go

+ 16 - 1
backend/internal/handlers/geocode.go

@@ -5,6 +5,7 @@ import (
 	"io"
 	"net/http"
 	"net/url"
+	"strings"
 	"time"
 )
 
@@ -58,6 +59,20 @@ func GeocodeReverse(w http.ResponseWriter, r *http.Request) {
 	}
 
 	writeJSON(w, http.StatusOK, map[string]interface{}{
-		"display_name": data.DisplayName,
+		"display_name": reverseAddress(data.DisplayName),
 	})
 }
+
+// reverseAddress разворачивает адрес Nominatim (сперва самое точное -> в конце самое общее)
+// в человекочитаемый формат: страна, регион, город, улица, дом.
+func reverseAddress(addr string) string {
+	if addr == "" {
+		return ""
+	}
+	parts := strings.Split(addr, ", ")
+	for i, j := 0, len(parts)-1; i < j; i, j = i+1, j-1 {
+		parts[i], parts[j] = parts[j], parts[i]
+	}
+	return strings.Join(parts, ", ")
+}
+}