Results tagged “google maps” from Rento

Το Rento για να μπορεί να απαντήσει σε σύνθετες αναζητήσεις όπως "γκαρσονιέρα κοντά στο Πανεπιστήμιο Αθηνών" ή "διαμέρισμα στα βόρεια προάστια μέχρι 900 ευρώ" συνδυάζει τεχνολογίες επεξεργασίας φυσικής γλώσσας και ένα γεωγραφικό σύστημα πληροφοριών (GIS).

rento_postgresql_googlemaps_mashup.png

Μια από τις τεχνολογίες αυτές είναι η επεκτάση PostGIS που επιτρέπει στη βάση δεδομένων PostgreSQL να απαντάει σε πολύπλοκα γεωγραφικά ερωτήματα, μέσα σε ελάχιστο χρόνο, παρά τους πολλούς υπολογισμούς και το μεγάλο όγκο δεδομένων.

refractions_research.jpg
Η εταιρεία Refractions Research, που αναπτύσει την επέκταση PostGIS, έγραψε λίγα λόγια για το Rento και τον τρόπο που χρησιμοποεί την επέκταση PostGIS και τη βάση δεδομένων PostgreSQL. Το άρθρο είναι στην σελίδα με τα case studies με τον τίτλο "Natural Language Spatial Search Engine for Rental Places - Rento" (στα αγγλικά).

attica_suburbs_map.png
Σε αναζητήσεις που προσδιορίζουν γεωγραφική περιοχή, όπως πχ. "κέντρο αθήνας", "νότια προάστια", "βόρεια προάστια", κτλ. χρησιμοποιώντας το γεωγραφικό στίγμα (GPS) των καταχωρήσεων και τα γεωγραφικά όρια της περιοχής το Rento περιορίζει την αναζήτηση στις καταχωρήσεις που περιέχονται στη συγκεκριμένη περιοχή.

Η σύγχρονη προσέγγιση του Rento στην αναζήτηση στέγης σε συνδυασμό με την εξελιγμένη τεχνολογική πλατφόρμα δίνουν μία άλλη διάσταση στην αναζήτηση στέγης, επιτρέποντας λιγότερο συνηθισμένες αλλά πιο καθημερινές αναζητήσεις, όπως "βόρεια προάστια μέχρι 900 ευρώ και μέχρι 80 τμ".

search_within_north_suburbs.png
Η μηχανή αναζήτησης του Rento μεταφράζει κάθε πρόταση σε γλώσσα SQL και χρησιμοποιώντας indexes πάνω στα γεωγραφικά δεδομένα επιλέγει γρήγορα κατάλληλες καταχωρήσεις. Ο χρόνος επεξεργασίας ενός query από φυσική γλώσσα σε SQL είναι περίπου 7ms και ο χρόνος αναζήτησης στη βάση δεδομένων περίπου 17ms, συνολικά 24ms. Στόχος του Rento είναι να απαντάει σε κάθε αναζήτηση σε λιγότερο από 1sec, συμπεριλαμβάνοντας και το χρόνο μεταφοράς των δεδομένων στο δίκτυο.

query_process_big.jpg
(κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση)

Αν κατά την επεξεργασία της φυσικής γλώσσας βρεθούν λέξεις που χαρακτηρίζουν σημεία ενδιαφέροντος (όπως για παράδειγμα "μετρό", "Πανεπιστήμιο", "Ευαγγελισμός", κτλ.), τότε το Rento περιορίζει την αναζήτηση γύρω από τα συγκεκριμένα σημεία ενδιαφέροντος. Η ακτίνα περιορισμού είναι 1,5 χιλιόμετρο, μια απόσταση που μπορεί να καλυφθεί, κατά μέσο όρο, μέσα σε 15 - 20 λεπτά με τα πόδια ή σε 5 λεπτά με ποδήλατο ή μηχανή.

near_metro_station.png

Το Rento επέλεξε τα εργαλεία PostGIS και PostgreSQL γιατί:
  • είναι ώριμα και δοκιμασμένα
  • είναι open source και συνεπώς είναι διαθέσιμος ο πηγαίος κώδικος
  • λόγω της ανοιχτής φύσης τους (open source) είναι επεκτάσιμα
  • είναι συμβατά με πρότυπα, όπως το "Simple Features for SQL 1.1" από το Open Geospatial Consortium
  • είναι καλά τεκμηριωμένα
  • είναι χαμηλού κόστους
Αντίστοιχες λύσεις, που συνδυάζουν κάποια από τα παραπάνω χαρακτηριστικά, υπάρχουν και από εταιρείες όπως η Microsoft (Microsoft SQL Server 2008 Spatial Data), η Oracle (Oracle Database 11g Spatial) και η IBM (IBM DB2 Spatial).
Σήμερα (Δευτέρα 02/06/2008) το μεσημέρι, κατά τις 13:00, παρουσιάστηκε ένα τεχνικό πρόβλημα με τα Google Maps σε όλη την Ευρώπη και ενδεχομένως και σε άλλες περιοχές του πλανήτη.

Το πρόβλημα που παρατηρήθηκε είναι ότι δεν φόρτωναν οι χάρτες (map tiles) όταν το zoom level ήταν μεγάλο (για την ακρίβεια μεγαλύτερο από το 11 με την κλίμακα του Google Maps). Το Rento στην πρώτη σελίδα χρησιμοποιεί zoom level 12 και στην σελίδα της αναζήτησης από 13 μέχρι 16 ανάλογα με το πλήθος των αποτελεσμάτων. Αυτό είχε σαν αποτέλεσμα να εμφανίζονται αντιαισθητικοί και άδειοι "γκρι" χάρτες στις σελίδες του Rento, όπως φαίνεται και στην παρακάτω εικόνα.

Rento-Google-Failed-Tiles.jpg

Η εκδήλωση ανησυχίας στο Google Maps API group ήταν άμεση. Μέσα σε 30 λεπτά άνθρωποι και επιχειρήσεις από την Ευρώπη (Δανία, Γερμανία, Γαλλία, Αγγλία, Αυστρία, Φινλανδία κ.α.) άρχισαν να αναφέρουν, μαζικά, ότι έχουν πρόβλημα με τους χάρτες της Google.

Οι χάρτες φορτώνονται από τους servers της Google ζητώντας τα κατάλληλα tiles από URL διευθύνσεις της μορφής:

http://www.google.com/maps/vp?spn=38.963048,74.970703&z=4&vp=37.0625,-95.677068

όπου τα νούμερα είναι παράμετροι για κάποιο συγκεκριμένο κομμάτι του χάρτη. Στο Rento έχουμε παρατηρήσει ότι αν αποτύχει να φορτωθεί κάποιο κομμάτι του χάρτη τότε αντί να γίνει μια αίτηση στους servers της Google, γίνεται μια αίτηση στον server που τρέχει το Rento (ή στο server της εκάστοτε εφαρμογής που χρησιμοποιεί Google Maps) με την μορφή:

http://www.rento.gr/maps/gen_204?ev=failed_tile&cad=x:undefined,y:undefined,zoom:undefined 

Το πρόβλημα που εμφανίστηκε στους χάρτες της Google δημιούργησε μια καταιγίδα από  αιτήματα στους servers του Rento, αφού όλα τα κομμάτια του χάρτη αποτυγχάνανε να φορτώσουνε. Αυτό αύξησε απότομα, και για 2 ώρες, κατά 400% τα αιτήματα που γίνονταν στους servers του Rento! Ευτυχώς οι servers του Rento ανταποκριθήκανε στον αυξημένο φόρτο εργασίας και μας βγάλανε ασπροπρόσωπους.

Αξίζει να σημειώσουμε ότι αυτό είναι ένα ενδεχόμενο σημείο αδυναμίας των mashup sites / υπηρεσιών. Η υπηρεσία που παρέχεται είναι τόσο εύρωστη όσο ο πιο αδύναμος κρίκος από τις υπόλοιπες υπηρεσίες που χρησιμοποιούνται.

Ευτυχώς στις 15:10 το πρόβλημα, όπως ανακοινώθηκε στο Google Maps API group, λύθηκε και η Google ήδη ανακοίνωσε ότι ψάχνει τρόπο για να αποτρέψει την εμφάνιση του ίδιου ή παρόμοιων προβλημάτων στο μέλλον.

Ζητάμε συγγνώμη για την "παράξενη" εμφάνιση του Rento σήμερα και ελπίζουμε ότι δεν θα ξαναδημιουργηθεί παρόμοιο πρόβλημα στους χάρτες της Google στο μέλλον.

Φιλικά,
Η Ομάδα του Rento