Ответ
Да, геоданные можно передать в GET-запросе через query-параметры URL. Это стандартный подход для простых пространственных запросов.
Распространенные форматы передачи:
- Отдельные параметры: Наиболее читаемый вариант.
GET /api/places?latitude=55.7558&longitude=37.6176&radius=1000 - Параметр
bbox: Для запроса области (границы).GET /api/features?bbox=minLon,minLat,maxLon,maxLat
Пример формирования запроса на Java с кодированием:
String baseUrl = "https://api.example.com/poi";
String latitude = "55.7558";
String longitude = "37.6176";
// Важно: кодировать значения параметров
String urlWithParams = baseUrl +
"?lat=" + URLEncoder.encode(latitude, StandardCharsets.UTF_8) +
"&lon=" + URLEncoder.encode(longitude, StandardCharsets.UTF_8);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(urlWithParams))
.GET()
.build();
Ограничения и рекомендации:
- Длина URL: Ограничена (~2048 символов в большинстве браузеров). Для сложных геообъектов (полигонов) используйте POST с телом запроса (например, в формате GeoJSON).
- Кэширование: GET-запросы кэшируются, что может быть полезно для часто запрашиваемых локаций.
- Безопасность: Координаты видны в истории браузера и логах сервера.