OSMTime in Cluj featuring MapRoulette

OSMTime is a monthly OSM mapping event organized by Telenav colleague Beata Jancso. Telenav hosts the events in the Cluj-Napoca office  and sponsors with pizza. Usually Bea chooses a theme and sometimes there will also be a speaker with an interesting OSM related topic.

While visiting the Telenav Romania office in Cluj last week, I was lucky to also catch an OSMTime event. The theme of the evening was ‘Mapping Roundabouts using MapRoulette’. Being the person behind MapRoulette, Bea asked me to do a quick introduction. Colleague Bogdan Gliga also presented the metodology he used to detect missing roundabouts from massive amounts of probe data. (He wrote about that topic here as well.)

OSMTime Cluj with Bogdan presenting
OSMTime Cluj with Bogdan presenting

After the presentations and pizza, the 25 or so mappers logged on to MapRoulette to start with the new Missing Roundabouts challenge. Most people had not used MapRoulette before, so I was glad that everyone was getting the hang of it quickly. Most of the problems and questions were not about MapRoulette but about what is a roundabout exactly, and what is the difference between a roundabout and a mini_roundabout and a traffic_circle. (The OSM wiki helps out a little here.)

At the end of the evening, the mappers in the room already made a good dent in the challenge, which has more than 4500 tasks total.

I had a great time, thanks to Bea for organizing the OSMTime events every month and spreading the word. If you are in the Cluj-Napoca area, you may want to subscribe to the OSMTime meetup so you know when the next one takes place. Or look for an OpenStreetMap meetup in your area and meet local mappers!

Facebooktwittergoogle_plus

OpenStreetCam JOSM plugin

The OpenStreetCam JOSM plugin helps the community to improve the map by displaying up to date street view images. Street view images are collected by the OpenStreetCam platform and are available also via the OpenStreetCam web application and map editor.  

Having an extra source of free and open imagery ease the process of remote mapping and allows the users to reflect the reality also in the map. Street view images are helpful for editing map features that are not visible on satellite imagery like traffic signs, house numbers, bus stops, points of interests.

Installation

Install the OpenStreetCam plugin the familiar way, through the JOSM plugin Preferences menu item. After you install the plugin and restart JOSM, you should see the OpenStreetCam layer and panel.

OpenStreetCam layer

After a successful installation the OpenStreetCam layer is available in the layer menu panel and on the main map the image locations are displayed. Image locations are illustrated with blue icons, each icon indicating the image heading.

An image location can be selected by single mouse click action as long as the layer is visible. You can select images even if the OpenStreetCam layer is not the active layer.

OpenStreetCam layer displays data starting with zoom level 14, so in order to see the data you need to zoom in into the desired mapping area.

For Imagery layers the data is loaded as you move the map and zoom in/out. In the case of OSM data the OpenStreetCam layer data is loaded only for the downloaded area.

The plugin saves the open/closed state of the layer. So if you delete the layer then at the next JOSM session the OpenStreetCam layer will not be loaded by default. A previously deleted OpenStreetCam layer can be activated again from the Imagery menu.

OpenStreetCam panel
In the OpenStreetCam panel you can interact with the currently selected image.

The panel along with the image displays basic information such as: OSM username and date of creation.

The panel also has a number of action buttons on the bottom. These are for filtering, next/previous image loading, centering the map, opening image web page and giving feedback. Image related actions are enabled only when the image is showing in the panel.

These features will be discussed in the next sections.

The plugin saves the open/closed state of the panel. So if you delete the panel then at the next JOSM session the OpenStreetCam panel will not be opened by default. If you don’t see the panel you should be able to open it by selecting the OpenStreetCam icon from the left side panel.

Image filtering

The displayed data can be filtered based on the creation time and JOSM user. In order to view only your uploaded images, you need to authenticate in JOSM using OAuth login.

 

By default no filter is set, custom filters can be removed by clicking the Clear button.

Visualizing an image and corresponding track
Individual images can be visualized by clicking on the image icon displayed on the map. The corresponding image is loaded in the OpenStreetCam panel and the corresponding track is displayed on the map.

An OpenStreetCam track is illustrated with a blue directed line. Images belonging to the selected track are illustrated with opaque icons; while other images along the track are illustrated with transparent icons.

Image zoom in/out

The displayed image can be zoomed in and out using the mouse wheel. In an already zoomed in image details can be observed by moving the image left, right, up and down.

Next/Previous image

You can navigate between the previous and next image of a track either from the OpenStreetCam panel by clicking on the Next/Previous button or by pressing Alt-Left arrow/Alt-Right arrow.

If the next or previous image is not visible in the current view, the map is moved automatically and images near the track are downloaded.

Center map to selected image

The map can be re-centered to the selected image location by clicking on the “Location” button from the OpenStreetCam panel. This feature is useful when the map was moved and the selected image location is not visible on the map.

Image web page

The selected image web page can be opened by clicking on the “Globe” button from the OpenStreetCam panel.

Upcoming features

We are working on improving our JOSM plugin and plan to add new exciting features. In the near future we plan to:

  • improve image loading speed by adding caching mechanism
  • allow the user to select easily nearby images to an already selected image
  • improve the map view and suggest street view coverage by displaying OSM ways instead of individual images. We will implement something similar as in the case of the web and mobile applications.

Source code

The source code for the plugin can be found on GitHub .

 

Feedback

Ideas, suggestions and bug reports can be submitted either to the plugin’s GitHub issue page or to the Feedback forum. Other mapper’s idea can be voted there.

We take a look at all incoming ideas, so be sure your input is heard and very much appreciated!

 

Have fun adding missing map features using OpenStreetCam images.

Facebooktwittergoogle_plus

Enhancing OSM Maps using Machine Learning & Big Data

One of our main goals here at Telenav is to constantly improve the maps we are using in our applications and services Having very detailed and accurate maps is of fundamental importance if we want to build high-quality and precise routing applications, ADAS systems or self-driving guidance software. In this post we’re going to talk about how we leveraged our massive datasets of anonymized GPS (probe) data in order to enhance the OSM maps, more specifically how we were able to detect missing roundabouts throughout the world.

The Task

The problem at hand is as follows: Given a dataset of GPS probe data and the current OSM geometries, could we identify missing roundabouts? More precisely, we are searching for geometries that lack a specific tag ( junction = roundabout) identifying them as such.

A relevant case would be the one below, where the geometry clearly defines a roundabout, but that specific tag is missing from the OSM map.

1484816109 1484816464

What we decided to do is to analyze car movement patterns and use this analysis to make inferences about the underlying map topology. In order to solve this not-so-trivial problem we decided to harness the power of Machine Learning. We did this because we are aware of the huge recent developments in this field and of the powers of a well-designed Machine Learning algorithm when combined with huge datasets. 

The Solution

The intuition about why this approach is preferable is obvious when analyzing the available data and how different traffic patterns are when we are in the context of a roundabout compared to the context of a normal intersection. What we have achieved is to teach the algorithm to associate the circular traffic movements having a “hole” in the middle with a roundabout and to associate the evenly spread movements with a normal intersection.

1484816471    1484816475

After successfully developing this “smart” detection algorithm, we have selected from the world map approximately 117 000 potential points, where a roundabout would be likely to exist based on some predetermined criteria. Of course, these are far too many to manually check, so the automated solution is the only one suitable for this job.

The Results

After running those points through the Machine Learning algorithm, it has detected around 9000 missing roundabouts in Europe and North America, as those are the areas for which we have GPS probe data. The massive size of these results which translate to substantial improvements of the OSM map is obvious when visualizing them.

1484816482

1484816492

1484816499

After a quick series of manual testing of a batch of results, we have discovered that the predictions are between 82% – 86% correct, depending on the level of confidence, which proves the efficiency of the Machine Learning oriented solution to this difficult task.

What’s next

In the near future, we plan to release this data to be validated by the OSM community through the MapRoulette platform and we are eager to see the feedback we get. Having acquired even more knowledge in this field, we are now ready to tackle more difficult problems using more advanced Machine Learning and Deep Learning algorithms. This will surely enable us to improve the OSM maps even more.

PS

We have uploaded all our predictions here in CSV format for those of you who are interested in playing with the data.

 

 

Facebooktwittergoogle_plus

Usage tips on the new Improve OSM

In this post we will take a detailed look at the new improveosm.org web site. We recently completely overhauled the application. It is now based on the OSM iD editor. We will walk you through the functionality and give some pointers.

Zoom and layer activation

Just by entering the web application, you already have our Improve OSM layer selected, and also active. A low zoom level displays a heat-map the content of which is modifiable via the left side filtering options. Note the color coded dots, corresponding to the heat-map’s circles.

improve-osm-heatmap

A higher zoom level, meaning a zoom level over 15, will show each individual Improve OSM item. Turn Restrictions are grouped in clusters, if some items represent rules for the exact same intersection. You’ll also notice that different types of Missing Roads have their specific color on the map and are also marked with the respective color in the filter panel. Filtering has the same usage as in the heat-map.improve-osm-transparent-tr

We talked about the Improve OSM layer being active by default, but what exactly does that mean? It means you can use the filters from the side panel and you can also interact with any Improve OSM item on the map. While inactive, the filter panel becomes minimized and any Improve OSM item becomes see-through. You can’t interact with the layer in this inactive state, but you can and will want to interact with all the iD’s map items and editing mechanisms. The SPACE key switches between the active and the inactive states. You can also use the toggle button found in the side panel’s header.

Item selection and status

When the Improve OSM layer is active any item can be selected. After selection, options appear in the side panel allowing you to change the status and add a comment.

You can have a multiple selection by keeping the CTRL key pressed and selecting items with the mouse. Only for the Missing Road items, you can batch select neighboring tiles. For this, keep the SHIFT key pressed and click one of the tiles in the batch. All neighboring tiles in that batch will be selected.

improve-osm-selections-1

improve-osm-selections-2

For Turn Restriction clusters, selecting one will automatically select a single Turn Restriction from the cluster. You can switch to another item in that cluster by selecting it from the list appearing in the side panel.

improve-osm-selections-3

Clicking anywhere on the map area not containing an Improve OSM item, will deselect all selected items.

For Turn Restrictions, you can select one to see its describing arrows and pass numbers, and then have the entire Improve OSM layer inactivated. This way, you’ll still see the describing arrows while being able to interact with the editing iD tools.

Item types

Turn Restrictions – they mark an intersection where a new, unmapped, turn restriction is in place. The green arrow marks the street vehicles came from while entering an intersection, while the red one marks a street used by none or very few of those vehicles to exit the intersection. It’s assumed that the very low percent of passes on the red segment, indicates a strong possibility of a turn restriction being in place. Passes on the red segment are assumed to be traffic rules violations.

Missing Roads – they mark a portion of the map (a tile) that contains GPS output from vehicles, in places no road is mapped. If they are numerous and they represent a clear trail, it’s assumed a missing road is there.

One Ways – they mark a road that is not mapped as a one way street, for which traffic data suggests with high confidence it actually is a one way street.

A typical usage flow

1. Identify an Improve OSM marker (item) and decide if iD editing is required

improve-osm-flow-set-1

2. Press SPACE to inactivate the Improve OSM layer and use the iD’s tools

improve-osm-flow-set-2

3. Make the wanted edit in iD

improve-osm-flow-set-3

4. Press SPACE agai, select the resolved Improve OSM item and change the item’s status to ‘SOLVED’

improve-osm-flow-set-4

We hope you find the new improveosm.org web site useful and are looking forward to hearing your feedback!

Facebooktwittergoogle_plus

Collaboration brings nearly 1 million missing roads to ImproveOSM

If you go to ImproveOSM today, you will notice that it looks a lot different. No, we are not talking about the recent change to a completely iD-based editing environment, although that was pretty neat too J. We are talking about the massive increase in Missing Road tiles worldwide!

Missing roads everywhere!
Missing roads everywhere!

We added more than 800 thousand new road tiles to ImproveOSM all over the world. The anonymous GPS traces are sourced from INRIX, a company that provides traffic and connected car services. We are extremely excited to have such a huge boost to ImproveOSM and to OSM itself!

If you haven’t tried ImproveOSM recently, why not head over to improve-osm.org right now and explore the millions of missing roads, one-way streets and turn restrictions detected from big data analysis on anonymous GPS traces from drivers all over the world?

You can read more about the collaboration with INRIX in the joint press release.

Facebooktwittergoogle_plus

OpenStreetView is now OpenStreetCam

This summer, we launched OpenStreetView and received great response both from the OpenStreetMap community and the press.

After only 4 months, you have already contributed almost 12 million images covering 322 thousand kilometers. We have released open source apps, upload and OpenStreetMap editing tools, and are working on many improvements aimed at improving OSM faster than is possible now.

As part of our fast growing public profile, we have also attracted the attention of Google Inc, who holds the ‘Street view’ trademark. They are really interested in OpenStreetView but also expressed concerns about the name creating confusion. Obviously to us this confusion does not exist, but after considering the pros and cons carefully, we decided to change the name.

From now on, OpenStreetView will be known as OpenStreetCam. 

osc-logo-web-380_72

Aside from the name, nothing changes. In fact, we will be launching some pretty cool new features and improvements very soon, so please stay tuned for that. If you have not tried OpenStreetCam yet, why not download the free and open apps for Android or iOS, explore the coverage or start editing with OSC in OpenStreetMap?

Happy OpenStreetCamming!

Facebooktwittergoogle_plus

A glimpse into the future of Mapmaking with OSM

We have over the last 12 months starting to look extensively in how we can leverage AI / Deep Learning to help improve OpenStreetMap and today we want to provide a few details about how we envision the future of making maps and also share more on what we are already doing. We see the emergence of self-driving vehicles as a game-changer and one key requirement for those vehicles are accurate and up-to-date maps. Currently commercial map providers map every region around every 12-24 months – in a costly process with a high precision and high cost vehicle, our goal was to achieve maps that are updated on a minutely basis and with key streets covered at least once every day. This is the goal we set out to solve with OSM in supporting to make it ready for this use-case.
Using OSM for Navigation Maps
At Telenav (and before at skobbler) I’ve been actively involved in OSM for almost 10 years now and it is truly unbelievable how OSM has grown massively in that period from a map that was used mostly by passionate enthusiasts to a map that is used by 100s of millions of users and big companies such as Toyota, Tripadvisor or Apple to just name a few to power their consumer products. Despite this success we have still seen that for navigation maps many additional attributes are needed that are not that well covered in OSM such as Signposts, Speed limits, Turn restricitons or Lane Information is needed to provide the best possible guidance.
 space
rsz_speed-na-1

Speed limit coverage

rsz_1tr-coverage
Turn restriction coverage
 space
rsz_tr-na-1
 Turn restriction coverage United States
 space
What we have done especially to close the turn restriction gap is to use (anonymised) GPS probe data from our millions of customers and from partners like Inrix to detect where there are likely turn restrictions based on turn behaviour. This data is then shared with the community via ImproveOSM and also for the most likely cases we put a high penalty on turns for our customers so they avoid those manoeuvres if possible. This way we have been able to detect 139,181 turn restrictions and increased  coverage in a meaningfull way.
Next step: Higher accuracy with Computer Vision
With Speed Limits, Lanes and Sign Posts it is significantly more tricky as it is not possible to identify those purely from GPS probe data. This is the reason why we started our OpenStreetView project to capture those images as there was no truly open project for Streetlevel Imagery that we could use (when we approached Mapillary they asked for hundreds of thousands of dollars in license fees – which was not an option for us).
In parallel to the OpenStreetView projects we have invested a lot in Computer Vision algorithms and established a cooperation with the Technical University in Cluj to get their over 15 years in the field. Our goal was to use computer vision to automatically build maps based on this images.
In the last year we made very significant progress and now we are able to detect Speed Limits, Turn Signs and Signposts (incl. OCR the text in those signs). Those detections when made will be reviewed by our editors and added directly into OSM.
<Slideshow with our computervision images for detecting turn signs, OCR, speed limits>
   input-picture-1
Input picture
space
   panel-detection-2
Panel deetection
space
glyph-segmentation
Glyph segmentation
space
character-grouping-into-words
Character grouping into words
space
ocr
OCR and classification results
space
We have build a map editor that allows us internally to review those changes and add them with our team of 20+ mappers to OSM.
We have by now added 19,798 map features (turn-restrictions,one-ways, signs) to OSM using this tool, and are adding every week hundreds of new turn restrictions and other signs to the map to make it better.
<MAP EDITOR TOOL SCREENSHOTS>
map-editor-1-cropped
 Map editor tool
space
map-editor-2
 Map editor tool
Advanced level: Create High Accuracy maps (ADAS / HD maps)
The next level for this challenge was to create the high accuracy maps needed by self driving cars and for ADAS (Advanced Driver Assistance System) applications. Those maps need accuracy < 2m which typically OSM doesn’t provide consistently and which is a big challenge to achieve purely based on GPS probes as we learned through a lot of trial and error. We looked into how we can achieve better accuracy and our natural choice was to leverage car data that is available to achieve higher accuracy.  Therefore we integrated our OpenStreetView application via an OBD2 port (which is available on every car manufactured in the last ~20 years) to integrate our phone based data with data coming directly from the car (such as speed, or on some models even with steering wheel angle available via OpenXC). With this we have been able to achieve an accuracy which is 5-10x higher than purely achievable by Phone based GPS and with several passes on one road we can create truly high accuracy maps.P ENHANCEMENTS FROM HARALD>
bildschirmfoto-2016-11-21-um-14-02-43
Trip Enhancement
Our vision of the future of map making:
We believe if enough consumers help recording the necessary images via OpenStreetView maps can be created in near real-time at an unprecedented accuracy. This would be a major enabler for self-driving cars and uptodate navigation systems. In order to make that possible we are also in early stages working with several car manufacturers to use the data from their on-board cameras in the future for those detections and hopefully this way we can use millions of cars from our OEM partners in the future with this technology to enhance maps and share this data with the OSM community to create even higher quality maps than today.
We will over the next few weeks go in this blog deeper into our individual modules that we built for making this future happen and looking also forward to feedback from the community.
<TEAMPICTURE OF TELENAV OSM TEAM>
thumb_img_8533_1024
team-pic-2
space
map-2
space
space
rsz_img_8680
foto_miriam frederic steve-coast
OpenStreetView team
Facebooktwittergoogle_plus

ImproveOSM now based on iD editor

With the help of ImproveOSM, Telenav’s project to analyze billions of GPS points to detect missing roads, one-ways, and turn restrictions, you have already looked at 60,000 missing road tiles, 15,000 one-way suggestions, and 2,000 turn restriction suggestions since the project launched in September 2015.

Today, the Telenav OSM team has released a completely new version of the ImproveOSM web site. ImproveOSM.org is now entirely based upon the OpenStreetMap iD editor. The new ImproveOSM combines the benefits of the familiar, user-friendly iD editing environment with the power of ImproveOSM detections.

The new ImproveOSM web site based on iD
The new ImproveOSM web site based on iD

The new ImproveOSM web site showing missing roads.

Since the new web site is based on iD, it should look very familiar and you should have little trouble getting started with it. The main difference you will see is that the ImproveOSM version of iD has a special panel, which shows ImproveOSM specific options, actions and information. If you have used ImproveOSM before, these will be familiar to you. You can mark items as solved or invalid and apply filters to determine which detections you see.

I do not want to go into too much detail in this post, but I do have a quick power tip: following up on many requests from you, you can now select multiple missing road tiles more easily by pressing shift and selecting one tile. This will automatically select all adjoining tiles within the current view.

Our goal is to integrate the ImproveOSM functionality into the main iD editor over time. To make that happen, your feedback is really important, so please do not hesitate to report bugs and ideas on the project GitHub page, where the source code will also become available soon.

We hope you enjoy the new ImproveOSM web site and look forward to your feedback! Happy mapping!

Facebooktwittergoogle_plus

How to deal with orphan nodes in OSM?

This is a guest post by one of our Map Analyst team interns, Manuela.


While editing the map I stumbled upon clusters of orphan nodes. Basically, orphan nodes have no tags and are not part of a way. One example here:
nodes

Some online tools report these as bugs/issues (e.g. osmose). You should be careful, though. These may have been created with a reason. Before proceeding to deletion, ask yourself:

  • Were these nodes orphan from the very beginning?
  • Is there just one orphan node in a changeset or are there many?
  • Are they arranged in a special way/shape?

If so, they may be GPS traces that could be used for mapping. And still, even nodes from GPS traces should be deleted, there is no reason to keep orphan nodes in the map AFTER you extracted all the needed information from them.

My advice: research! There are many tools to find out the history of an OSM element. To name a few: object history, WHODIDIT, OSM History Viewer, attic data etc.

You’ll probably find yourself in one of the following situations:

  • You’ve found a newbie that creates orphan nodes by mistake
  • The nodes are correct but the user forgot to add the tags
  • A Redaction bot deleted ways without deleting the corresponding nodes (read more here)

Your options:

  • Contact the creator or the used who made the last change via a changeset comment or private message (in a friendly way, of course)
  • Add relevant tags if that’s the case
  • Delete the nodes or leave a fixme tag for other users that may know the area better than you

How to find orphan nodes

Osmose will report orphan nodes clusters as issues:

orphan

In JOSM, orphan nodes (even isolated ones) can be easily found using the Search tool, with the following queries:

type:node tags:0 -child

or

type:node untagged -child

The -child tells JOSM to select only those nodes that are not part of a way.

As if that wasn’t enough already, I’ve created a map paint style that highlights orphan nodes and dims other elements. This will help you analyze the distribution of the orphan nodes without needing to select them and will help you take the decision to delete or no.

This is the default JOSM map paint style, where you can’t really see the orphan nodes that well.
orphan2
This is how the map looks like after applying the new paint style.

If you want to use this map paint style, you can find the script and a step by step guide on the GitHub page:

https://github.com/manuelabutuc/JOSM-Orphan-nodes-map-paint-style/tree/master

Have fun spotting orphan nodes! But remember to delete them only if you are sure they have no reason to be on the map. If you have any improvement suggestions for this map paint style, feel free to comment below or fork the project.

 

Facebooktwittergoogle_plus

HOTOSM recognition by the President of Mexico in Internet Day 2016

On the Internet Day, May 17 2016 the President of Mexico Enrique Peña Nieto invited fifty citizens who called Digital Leaders (#LideresDigitales) to have a dialogue on the future of technology and Internet in Mexico, I had the opportunity of being among these group of citizens. The President talked about various related topics but especially appreciated the efforts of humanitarian mapping conducted by Humanitarian OpenStreetMap in Hurricane Patricia.

Day of Internet 2016- Dialogue with the President of Mexico
día del internet_3
President’s office twitter account

Why the President of México thanked the efforts from HOTSOM in Hurricane Patricia? Here you will find some details so you know what was done.

On October 23, 2015 Hurricane Patricia threatened to touch the states of Colima, Nayarit and Jalisco with winds up to 325 km/h, authorities of Mexico mentioned “It is very likely that this hurricane is the strongest ever in the Pacific side of our country, since it has records ”

Hurricane Patricia Path from NOAA

Contributors of OpenStreetMap and HOTOSM like Rodolfo Wilhelmy, Humberto Yances, Rafael Avila, Robert Banick, Andres Ortiz, and many others (sorry for not mentioning everyone)  in addition to an army of over 500 mappers of Mexico and the world joined efforts to support this area of the Mexican Pacific with data that could be used for the benefit of the population that could be affected. Fortunately, the hurricane lost strength by touching the coast of Mexico causing minimal damage compared to what was expected.

Quick stats:

  • More than 500 contributors mapped 9,000 kms of roads (5.6k miles of road) + 72,000 buildings in 72hrs
  • It was processed 29,608 km^2 pre-event DigitalGlobe imagery to improved coverage over priority areas.
  • It was analyzed INEGI road data to identify missing roads and road names in OSM data.
  • Mexico Open Data was confirmed by authorities to be used in OpenStreetMap.

All these was possible thanks to the great work HOT members, companies supporting OSM project and the local community in Mexico and the World

Contributors mapping the priority area in 72 hours Gif by Mapbox

The event took place in Los Pinos (The equivalence of the U.S. White House) at the moment the Open Data topic was mentioned, Peña Nieto said he knew someone who had supported the alert for Hurricane Patricia was among the guests so I raised my hand to start the dialogue, the President mentioned “… I just want to thank because it’s an example that illustrates very well what we can achieve and I think that you also use open information.” In my participation  I could give my point of view on the need for Mexico not only upload open data to be the first in quantity of released Open Data but emphasize the need of quality Open Data in order to take better decisions based on them. Also I could mention the importance of Open Mapping and collaboration between Governments and Civil Society so more Mexicans are less harmed by disasters (find the video here).

Miriam_DiadelInternet
Fragment of video from President’s office twitter account

In Mexico the OpenStreetMap community is not as numerous as in other countries but in the last two years a group of collaborators we have joined together to promote the project and increase the local community through massive workshops in Universities and courses for Government Authorities and Civil Society. Much remains to be mapped but I believe we are on the right track.

Miriam Gonzalez

@mapanauta

Facebooktwittergoogle_plus