An Expert System for Tourists Using Google Maps API

Aleksandar, Peji ; Szilveszter, Pletl; Bojan, Peji
Subotica Tech, Department of Informatics, Subotica, Serbia; e-mail:,,

In the field of eTourism, it is important to present prominent objects of tourists destinations. Nowadays demand for eTourism applications is rising and the customers need rapid software development. Google Maps API is a technology provided by Google based on AJAX, which powers many map-based services. This paper presents an expert system for tourists. The realized software uses free, public API service from Google Maps. The system utilizes a knowledge base formed by tracking user actions. The expert module suggests information of special interest to the user. Keywords: Rapid Web Prototyping, Google Maps API, AJAX, eTourism, mashup, fuzzy logic.


integration of readily available open source and free to use software, frameworks, APIs, libraries, data sources, external services and functionality to create a platform for running our Web 2.0 service. This development model is known as “Mashup” - a web application hybrid [4].

I. INTRODUCTION In recent years more and more information is available for tourists on the Internet. However, it is known to many that it is becoming increasingly difficult to obtain quality information. Growing requirement for modern websites is rapid web development along with customized data services. Intelligent software agents have been used to make recommendations of items in a wide variety of domains, as e-Tourism. A fuzzy clustering method of construction of ontology-based user profiles is proposed in [5]. Similarity measures are usually used for determining distance between the clusters [6]. Section II. presents the Rapid Web Development technique. Some basic problems based on Google Maps API are described in Section III. Structure of the developed software is presented Section IV. Technical realization of the application is described in section V. Testing and validation of proposed algorithm is presented in section VI. Finally, we conclude this paper in Section VII. II. RAPID WEB DEVELOPMENT

Figure 1. Illustration of mashup model

Figure 1 illustrates a simple mashup model where web services and multiple external and internal data sources are combined. III. GOOGLE MAPS API

Rapid Web Development means quick and efficient web application building. It is part of the Rapid Software Development described in [1]. Beside the obvious objective of meeting customers’ deadline, another characteristic of Rapid Web Development is fast prototyping. Mockups and partial web application versions aid evaluation, usability testing and simulation of planned features. The Rapid Web Development process uses existing technologies and brings them together allowing us to focus on the real task of application building. It implies

Google Maps is a web-based mapping service provided by Google which provides a slick, highly responsive visual interface built using AJAX technologies. This service has detailed street and aerial imagery data, and an open API allowing customization of the map output including the ability to add application specific data on the map (and also integration to third-party websites). Google was created the Google Maps API to allow developers to integrate Google Maps into their websites with their own data points, and it is a free service.

978-1-4244-5349-8/09/$26.00 ©2009 IEEE


Authorized licensed use limited to: ULAKBIM UASL - Yeditepe Universitesi. Downloaded on March 15,2010 at 06:52:22 EDT from IEEE Xplore. Restrictions apply.

Without this option. Directions. To this map we added a number of different elements designed to provide application functionality. information windows. Valuable tips on using these services can be found in [2]. or other information about the location being displayed. XML (Extensible Markup Language) –The XML standard is a way of representing data in a structured format that is architecture neutral. In this section was available some GLayers which were providing various data type on the map as pictures. These widgets are containing options and actions which gives user the interaction with the map. User interface User interface was designed that main focus to be on the map as shown in Figure 2. • We took advantage of Google Maps support for standard WEB Controls – basic interface controls that enable user to zoom in and out the first. text or video (Panoramio. All of the functionality of Google Maps is based on this embedded JavaScript object built in a web page. We used following technologies: • XHTML – Google Maps will work embedded in any standard HTML page. Although XML isn't a required element in Google Maps applications. Content of these widgets is adjusted by expert agent. IV. API understanding was relied on knowing the terminology used to define sections of the Google Maps API and interface. Google Maps has no limitation or restriction on how we layout or style our website when it includes a Google Map. With combining this interface with the data that we wanted to display. Google Maps applications usually start with a simple map. SOFTWARE STRUCTURE • • • • • In this section the structure of the realized software is described. We have exploited this ability to present our data. Right side of map is reserved for widgets. By the buttons in header these widgets also could be hidden or shown. extensible and closable. and interfaces that enabled us to manipulate the Google Map. but Google recommends that we create pages that are compliant with the XHTML standard. Restrictions apply. A. it was possible to support interactive elements on the web page without reloading the page or redisplaying the portions of the map – the entire process was handled by JavaScript and Google Maps application. loading the XML through Google Maps API. Google bar. JavaScript – the Google Maps API is based on the JavaScript language. with the standard of most browsers. collapsible. which itself is based on an objectoriented interface to a suite of Google Maps specific classes. Services – extends Google Maps API with adding new functionalities and features that are often available on maps. etc. InfoWindows are commonly called with GEvent and click action. a combination of header which contains a logo and widget buttons. which will ensure not only that the code is compatible 318 Authorized licensed use limited to: ULAKBIM UASL . and ability to change between map which are giving a really nice interactivity to user interface. we included the Microsoft VML namespace within our XHTML definition. stylesheets. a popular tourist destination in foremost north of Serbia. because they are movable. In this work we used following elements: • Overlays – representing POI (point of interest) on map or lines denoting areas. move the map effectively. .) by specifying the information in XML. and layout according to the needs of website. and this component was provided the interface to the Google Maps service and generated the map on users screen by loading the necessary image components and tiling them onto the display. The project is focused to provide information on tourist and business objects in Pali and around Pali Lake. Events – are triggered by some action. • VML (Vector Markup Language) –on top of our Google Maps application we used polylines as an overlay. In this section are Geocoding.2010 at 06:52:22 EDT from IEEE Xplore.Google Maps API is based on a very simple suite of classes (components) within a JavaScript container directly within a XHTML page. JavaScript was built into most browsers and provided a rich suite of functionality for developing dynamic elements. Layout scheme is very simple. objects. and than displaying that information using the functionality of the API. it is common to provide large volumes of data (map points.Yeditepe Universitesi. Ad-Sense for map and some others. Detailed documentation on API can be found in [3]. The majority of JavaScript programming was designed to interface directly into the Google Maps API. and YouTube layers). Downloaded on March 15. selecting category by interest and listing markers. The result of project is a web site and can be found at location http://palic. The Google Maps API is essentially a suite of JavaScript classes that we used to build applications within the confines of the web page. Wikipedia. routes. The interface of the API was hiding some powerful classes. and markers and polylines. such as the user click or mouse over on a POI or some other action associated with GEvent. our polylines will not work. For compatibility with Internet Explorer. but also the reliable rendering of our web page. and the content area which is held by the map. Styles – we were completely free to develop and design our own styles. and these classes were loaded from Google each time we opened a Google Maps web page.

Returning visitors are identified on the basis of a web browser cookie. Restrictions apply. A JavaScript library called jQuery is used mostly in creation of user interface effects. C. Universe of discourse for each input is covered by 3 triangular membership functions: small. The algorithm of classification of objects is based on fuzzy logic. In case of classification of user's behavior in more than one fuzzy set. 319 Authorized licensed use limited to: ULAKBIM UASL . Class dependent part of the user interface contains information about objects that belong to the same class as user. During the exploitation the system creates a log entry for every visit and visitor. B. After the fuzzification of each input we evaluate each rule in the rule base. we developed our own solution.directions or maybe displaying a third-party weather information by parsing an XML. medium and large linguistic values. this fact helps to correct class assignment. On palic. jQuery and some extensions in plugins form are helping to get the widgets and their interactivity. Figure 3. the system collects more and more information from user. Expert system The main task of expert system is to provide customized information to users. like street mapping and naming. Services There are many services provided by Google Maps API like: Geocoding which from given address returns a geolocation (point on the map). The next step is to find maximum membership function value and assign the class to object which membership value is the maximum. JavaScript.S. Classification of the every object is done during the process of adding it to the user interface. On the left side map there are controlls for map interaction like pan. Directions which takes us from one point to another with detailed route instructions (time and distance calculations). The cookie contains a randomly generated unique string value to identify each visitor. we consider the membership function value and find a proportion of objects to be presented. and PHP. It is not a unique class for one user. zoom in and out. The task entrusted to system was realized as follows. Screenshot of palic. illustrates an input space coverage. The user may belong to more than one class for some degree. one is class dependent and the other is class independent. . A function of Google Maps API was used for implementing controls of the map. The user interface of the application is divided in two parts. Figure 2. These services are Directions used how to reach Palic in Serbia from given location. A typical rule is as follows: R1: if (comfort is small) and (distance is small) and (price is small) then (cluster is c1) As a result of output from the rule base. The fuzzy logic system to determine which class object falls under has 3 inputs.2010 at 06:52:22 EDT from IEEE Xplore. All objects are classified based on their individual attributes value. Membership functions of comfort input. During the visits. For some abilities which are not supported for Serbia yet. Streetview which gives us a virtual picture of location just like we are there. one object may belong to more than one cluster for some degree. and custom icons for marking different point (location) types on the map picked by category. Tourist and business objects are presented with icons on the map. KML/GeoRSS overlays. because the limits of Google Maps API for Serbia (abilities with map interaction are not developed on the same level as for U. Technical background of construction like this contains: XHTML page with CSS. England) there were used only some of the services. KML/GeoRSS website integration. distance from the object of interest (Pali lake) and the price of the service. If we once assign a class value to visitor he becomes our user. In this work we assume that the number of objects and classes is N and M respectively. Figure 3..Yeditepe Universitesi. Downloaded on March 15. and these are just some of the most interesting ones. and also some other functions like buttons hover effect etc. GoogleBar for local search of the map. The three inputs are: level of comfort.

has some attributes like comfort level. such as name and contact information. information grouping and relationships between them were created. multilingual content and inline linking (hotlinking) for partner web sites are also stored.D. basic objects. belongs to one or more categories. Database contains tables for logging visitors’ actions on the website. After determining the information to be stored.2010 at 06:52:22 EDT from IEEE Xplore. can have one or more pictures grouped within galleries. Figure 4. Each object has a set of basic information. Database Database was designed using the relational model with special focus on normalization. Custom object grouping. Restrictions apply.Yeditepe Universitesi. Downloaded on March 15. Structure of the database is shown in Figure 4. Database Enhanced-Entity Relationship Diagram 320 Authorized licensed use limited to: ULAKBIM UASL . Information for profiling visitors and objects into clusters is also stored. . has address and geolocation information. The database holds information on tourist and business objects in Pali and around Pali Lake.

Wikipedia. Web Widgets. Application PHP Apache Linux MySQL • PHP PDO library. Database Abstraction Layer. Whole application is developed using the OOP paradigm. The following data services are used: • • • • Google Maps API (proprietary but free to use). Is a robust. We used them to improve database integrity. . covers basic web site functionality as links. We used it to add geographical identification to various media.Yeditepe Universitesi. while the actual web application hosting platform is LAMP (Linux-Apache-MySQLPHP). YouTube. PHP Classes and Objects. Restrictions apply. We used them for interactivity and to provide customized information to users. lightweight and consistent interface for accessing databases in PHP. the free encyclopedia VI. Figure 5 shows a typical server and client software stack needed for web application deployment. Software stack on server and client side • • • • • • The following technologies are used: • • • • • • • • • • XHTML markup language CSS style sheet language XML markup language JavaScript language AJAX (Asynchronous JavaScript and XML) PHP scripting language SQL relational database language jQuery JavaScript library Keyhole Markup Language (KML). video content sharing website (free to use). hence the web site domain name 321 Authorized licensed use limited to: ULAKBIM UASL . forms for information submitting. The underlying development platform for our application is WAMP (WindowsApache-MySQL-PHP). testing for potential vulnerabilities like XSS (cross-site scripting) Performance and stress testing. addresses browser compatibility and operating system compatibility Functionality testing. This work describes an application developed with rapid web development method. We achieved improved security and speed increase with them. application performance evaluation during high load and user activity. The realized application uses and benefits of Google Maps API service. XML-based language schema GeoRSS Geography Markup Language (GML) Cross-browser compatibility project was realized using mostly open source software and some proprietary but free-to-use software and services. Geotagging. CONCLUSION The following techniques are used: • • CSS overlays. We stored logical tables as SQL query. and consists of server side and client side parts. During the development process we considered limitations of both parts. covers user interface and navigation Interface testing. web server and database server Security web application passed the following tests: Figure 5. SQL Triggers. The application was customized to a popular tourist destination Pali . geolocation-oriented photo sharing website (free to use). The palic. On this way we produced flexible interface. testing application response on different internet connection speeds VII. weather forecast (proprietary but free to use). covers interaction between application. database connections. Weather.2010 at 06:52:22 EDT from IEEE Xplore. SQL Stored Procedures and Functions. We developed an PHP class to unify the communication with different database types. TECHNICAL REALIZATION • • • • • • Server side The project is based on client-server technology. Client side Web Browser Operating System • TESTING The palic. User interface makes extensive use of overlays. Downloaded on March 15. SQL Views.V. cookies Usability testing.

Guihai Chen “A fuzzy clustering method of construction of ontology-based user profiles”. Implemented expert system is based on a new fuzzy logic principle. VIII. 2006 Google Maps API Documentation. ISBN 90382-0567-8. Gent. pp. “Approximate reasoning based on distance based operators and similarity measures.palic. Advances in Engineering Software 40 (2009) pp. pp: 83-94. Downloaded on March “Hacking Google Maps and Google Earth”. Restrictions apply. . [2] [3] [4] [5] [6] 322 Authorized licensed use limited to: ULAKBIM UASL .535–540 M.zdnet. 2009 Martin C.2010 at 06:52:22 EDT from IEEE Xplore. The realized database is capable of storing user and object profiles. Cluster training is performed with help of a permanent knowledge base. ISBN: 978-0-471-79009-9. "Rapid Software Prototyping Using Ajax and Google Map Lixin Han. edited by Bernard de Baets and Janos Fodor. Mashups: The next major new software development model?. 2009 Second International Conferences on Advances in Computer-Human Interactions. http://code. 2003.Yeditepe Universitesi." achi. Kevin Lhoste. Academic Press. The completed application has successfully passed a few important testing phases. REFERENCES [1] Francis Rousseaux. in Principles of Fuzzy Preference Modelling and Decision Making“. Brown.

Sign up to vote on this title
UsefulNot useful