#prograowanie #mapy #sql #mysql #bazydanych

Męczę się z pewnym problemem od jakiegoś czasu i mam chyba blokadę. Dlatego zwracam się do Was z prośbą o pomoc.

Mianowicie chcę wyciągnąć z bazy obszary leżące w danym obszarze. Obszary zdefiniowane są za pomocą dwóch lokalizacji wyrażonych za pomocą koordynatów: south-west i north-east. Zapytanie też jest złożone z wartości south-west i north-east.

W
siemanko - #prograowanie #mapy #sql #mysql #bazydanych

Męczę się z pewnym probleme...

źródło: comment_J8n6dGoNeehUy6OSsF4YPgvhal4NwYMV.jpg

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@siemanko:
łopatologicznie sklejając wyszłoby coś takiego:

where point is within green and point is within red and point is within blue and not point is within yellow
gdzie każde '... is within ...' to ifologia w stylu lat>=minLat and lat<=minLat and lng>=minLng and lng<=maxLng (pewnie nie będziesz tego kleić ręcznie, więc może jakiś kod to przygotowywać).
będzie cholernie mało czytelne ale będzie działać, a kiedyś można zrefaktorować do czegoś ładniejszego
  • Odpowiedz
@ppawel: Dzięki za pomoc tylko ja nie szukam punktu ale obszaru :)
Jak na razie mam coś takiego generującego zapytanie w Hibernate i wygląda ok, choć nie zrobiłem jeszcze pełnych testów:

areaCriteria.add(Restrictions.or(
Restrictions.and(
Restrictions.between("area.southWest.latitude",
  • Odpowiedz
@duddits: no dobra, ustawiaj sobie go gdzie chcesz za pomocą setBound, ale potem i tak musisz go dodać za pomocą panel.add(component). Niewiele się zmienia oprócz tego, że musisz dopisać setBounds. Ale ja bym radził jednak manipulować widzialnością komponentu niż tworzyć cały przyciskiem.

Co robisz w listenerze przycisku:

1. Robisz nowy
  • Odpowiedz