The aim of this project is to organize information about movies that are set in Venice and to design a tool that allows users to experience Venice as portrayed in movies. We plan to develop an Android app which, based on current user location in Venice, gives the list of movies and relevant scenes which are set at or near that location. We also plan to export a database and/or map of movie locations in Venice.
In our previous blog post, we described how we extracted data and problems encountered while building database. We finalized database deisgn and have now moved on to Android app design .
We found a source (OMDb API) on which we could search for movie details giving movie and year. Querying for Casino Royale and year 2006 gives us the result in JSON format. This contains the IMDb ID as well as other details that we require such as Genre, Director, Actors etc. However, there were still problems. Firstly, the OMDb API uses only the primary title store in IMDb. It does not give results for non English movies for which the primary title is translated to English. Also there were different TV Series/Movie/Documentary with same title and year and the correct IMDb ID could not be determined. We finally decided to use the IMDb Search feature which we had abandoned earlier. It required a complex parser keeping state to extract movie names , years from this page. But ,extracting the IMDb ids is easy as it needs to only match hyperlinks of format imdb.com/title/<id> . Once the IMDb ID is known, all other information can be obtained easily. The movie name and year, as shown above, can be obtained from OMDb API. More precise details regarding location for movie could be extracted from imdb.com/title/<id>/locations as the page contains only locations for the movie. The entries with more precise location information than just Venice, Veneto, Italy are separated from the rest. This is the list of movie ids that have no location information other than just Venice. For the remaining entries, we have preciseLocations and preciseMovieLocations. A unique id for each location, which is combined with movieID of movies shot in that location. We decided to not store movie information table as all information can be queried online using OMDb API. Another of our issues from the last stage was that the markers for different scenes at the same location were getting overlapped and only one of them was visible. To solve this, a marker is now created only once for each location along with a custom description containing information about all movies in that location. geolocation-python module was used to get the coordinates ( latitude, longitude) information for each location. With all the updates the map looks like below (Layer “Links only”). With the custom description, it was also possible to add hyperlinks to scene pictures, which can be stored additionally in the preciseMovieLocations file. Since this needs to be done manually, we show some samples for 4 locations in another Layer (“Links with pics”).
Android UI Design
We also worked on the UI design for the Android app. After examining various options such as droidDraw and Android Studio, we found this website useful for quickly building UIs for mobile apps including Android with the requisite design elements. We plan to have five screens, and three tabs. The initial screen, on the tab ‘Map’, would display a Google map, focused on Venice. The user’s current location would be indicated and film locations would be represented by markers. On clicking, each marker would show in the info window, the list of movies shot at that location, and each movie name would link to the IMDb page for that movie. The screenshots of the scenes in that movie shot at that location, would also be displayed in the info window, if these are available. We also plan to have a control for the map (probably a slider) using which the users can filter the movies displayed according to the year of release. On the tab ‘Locations’, the users can search by location name. On clicking a particular search result, the same information would be shown as is displayed when clicking on the corresponding map marker. On the tab ‘Movies’, users can search by movie name, and on clicking a particular result, the list of location names for that movie would be shown.