You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mapa interativo na listagem e no detalhe do imóvel mostrando localização e imóveis próximos. Usa Leaflet.js (open source) + OpenStreetMap Nominatim para geocoding — sem custo, sem API key.
Critérios de aceitação
Backend:
Campos latitude e longitude (FloatField, null=True) no model Properties
Migration para os novos campos
Celery task geocode_property(property_id) — chama Nominatim e salva lat/lng
Task disparada via signal post_save quando imóvel é criado
Endpoint GET /api/properties/nearby/?lat=X&lng=Y&radius=2 retorna imóveis num raio (padrão 2km)
lat e lng incluídos no serializer de leitura
Frontend:
Listagem: mapa com pins dos imóveis filtrados + toggle "Ver no Mapa / Ver Lista"
Detalhe: mapa centralizado no imóvel com pins de imóveis próximos
Ao clicar no pin, destaca o card correspondente (na listagem) ou abre o detalhe (no mapa de próximos)
Mapa interativo na listagem e no detalhe do imóvel mostrando localização e imóveis próximos. Usa Leaflet.js (open source) + OpenStreetMap Nominatim para geocoding — sem custo, sem API key.
Critérios de aceitação
Backend:
latitudeelongitude(FloatField, null=True) no modelPropertiesgeocode_property(property_id)— chama Nominatim e salva lat/lngpost_savequando imóvel é criadoGET /api/properties/nearby/?lat=X&lng=Y&radius=2retorna imóveis num raio (padrão 2km)latelngincluídos no serializer de leituraFrontend: