We’re excited to welcome Bharata Srinivasa to the data team! He is a tech and mapping enthusiast and has been contributing to OpenStreetMap for four years. Bharata joins us to improve OpenStreetMap and other open datasets using a combination of satellite imagery, probe data, and analysing customer feedback.
Bharata holds a degree in Civil Engineering. While in school, he worked on the delineation of watershed and estimation of discharge of the Shimsha river using GIS. Before joining Mapbox, he was an intern in Gubbi Labs where he was part of a team doing a study about variations in temperature in buildings in rural villages of Tumakuru district.
Berlin happy hour is back this July.
With a bunch of Mapboxers in Berlin to work on our Directions API the same week, we’d love to take the opportunity to meet you! Let’s chat about anything maps or directions. Drinks are on Mapbox!
Meet us on Thursday, July 21st 2016 from 20:00 at Edelweiss in Görlitzer Park, Kreuzberg.
Mapbox Android Services is a great way to consume Mapbox APIs in your Java and Android applications. With just a few lines of code, you’ve been able to get the most efficient routes using the directions API and location information with the geocoder API. Now with the release of 1.2 we are bundling even more Mapbox APIs into a single SDK for use in your Android applications.
Map matching
If your apps are consuming GPS location information such as the tracking of a car, bicycle or person walking, the coordinates returned probably aren’t going to match up with the roads or pathways. This isn’t ideal when you want to draw the route on a map and will often result in a route that looks like this:
With the map matching API, you can pass in your route as a linestring and it will return the same route only now it will follow along the roads and pathways. Here’s a snippet you can include in your app that uses a list of coordinates originally from a car GPS:
lineString=LineString.fromCoordinates(<passinyourlistofcoordinateshere>);// Setup the request using a client.MapboxMapMatchingclient=newMapboxMapMatching.Builder().setAccessToken(<youraccesstokenhere>).setProfile(DirectionsCriteria.PROFILE_DRIVING).setGpsPrecison(8).setTrace(lineString).build();// Execute the API call and handle the response.client.enqueueCall(newCallback<MapMatchingResponse>(){@OverridepublicvoidonResponse(Call<MapMatchingResponse>call,Response<MapMatchingResponse>response){// Create a new list to store the map matched coordinates.List<LatLng>mapMatchedPoints=newArrayList<>();// Convert the map matched response list from position to latlng coordinates.for(inti=0;i<response.body().getMatchedPoints().size();i++){mapMatchedPoints.add(newLatLng(response.body().getMatchedPoints().get(i).getLatitude(),response.body().getMatchedPoints().get(i).getLongitude()));}// Add the map matched route to your Mapbox mapmap.addPolyline(newPolylineOptions().addAll(mapMatchedPoints).color(Color.parseColor("#3bb2d0")).width(4));}...
Here’s what the same polyline looks like after filtering it through the map matching API:
Route simplification
When route coordinates are acquired from a GPS, it is often done in intervals resulting in a route made up of too many points. This can be overkill when the route is a straight trajectory, and only a few points are needed to retain the routes shape. Mapbox Android Services now includes polyline simplification which reduces the number of points in a polyline while retaining its shape. This can lead to a boost in performance and a reduction in visual noise.
To simplify a list of coordinates, use the simplify method to pass in the points, a tolerance value, and whether the quality should be at it’s highest or not:
Turf brings powerful new methods to analyze and transform your map data on mobile. You can calculate bearing, distance, and even a destination just by giving a distance. If you need to extract a smaller section of a polyline or linestring, use Turf’s line slice method now found in the SDK.
Getting started
Along with the new features mentioned above, we’ve also made improvements to our geocoder which now serves up wiki data. Check out the overview page along with the new examples and begin working with Mapbox Android Services in your Android or Java application today!
Owners of SUBARU STARLINK™ subscribed vehicles can now locate their vehicle right from their phone. This Remote Vehicle Locator uses the Mapbox geocoding API to locate a user’s vehicle and then displays the location on the recently updated Mapbox satellite map. Using the same technology, the app displays retailers close to a ZIP postcode.
Lily Chai has joined the Mapbox Telemetry team out of our San Francisco office. Lily will be our resident data scientist, building statistics algorithms and data pipelines for improving OpenStreetMap and Mapbox Drive.
Lily was recently a member of the Galvanize data science program, where she worked on machine learning algorithms used for natural language processing and textual analysis.
The team at Niantic, who built Pokémon Go, did amazing work. Pokémon brings augmented reality mainstream, and the playful design of the maps is the foundation for all of it. Niantic’s CEO John Hanke, who was the former CEO at Keyhole (the team that started Google Maps), deserves huge credit for making location feel so smoothly integrated into the gameplay. Mashable posted an incredible interview with John that everyone thinking about location and AR should read.
The designers at Niantic, lead by Tatsuo Nomura, just set a new bar for AR maps as dynamic real-time representations of our world. Now all other AR app teams will need to design the look and feel of their maps to make their games stand out. Pokémon Go’s use of custom design shows the power of vector tiles, and the need to let application developers customize every part of their game’s experience. While the vector tiles in Pokémon Go are from Google Maps, I wanted to play around with their fun design using Mapbox tools.
In honor of the design team at Niantic, here is what I made with Mapbox Studio and Mapbox GL JS. I hope this is just the start of a lot more games experimenting with location and design. Use the keyboard to move around the map.
Mapbox is gearing up for State of the Map US on July 23 and 24 in Seattle, and this year we’re trying something new. In addition to great talks and workshops, Dan Swick and Lyzi Diamond (that’s me!) from Mapbox Support will be on hand to answer your burning questions – in real life! Whether you have a small hurdle to jump or you’re not sure where to start, we’ll have helpful Mapbox experts on hand to give you some one-on-one, in-person support all throughout the conference.
Interested? Great! Fill out our RSVP form and select a timeslot today. We think the slots will fill up fast, so don’t delay! We will get back to you in the days before the conference to confirm your time. As always, please reach out if you have any questions on Twitter @Mapbox. See you there!
We’re so excited to welcome Jen Yu to the communications team at Mapbox! Jen will be based in San Francisco where she’ll help us with messaging, media relations, our blog, email campaigns, and social media.
Before joining Mapbox, Jen worked in public relations at Aerohive Networks. Prior to that, she did strategic communications at the Abernathy MacGregor Group for Fortune 500 and startup companies.
Only one week until this year’s State of the Map US in Seattle! We’re excited to kick off the weekend’s conference with a welcome party at Rhein Haus next Friday, July 22nd at 7:30pm. Join us to catch up with the community, welcome new members, and compete in a few rounds of bocce ball!
If you can’t make the social event, find us at our booth or the following session and workshops throughout the weekend:
Our latest iOS SDK release introduces native view annotations, bringing the powerful, customizable marker views that we recently released on Android to iOS. Our new annotations are a big step forward and are powerful building blocks for visualizing information and bringing your maps to life with (realtime) data and native interactions. The new MGLAnnotationView is a subclass of UIView, so you can get creative with visual styling, animation, multitouch interaction, and everything else you’d like to do with a native view.
We added new methods that can return visible map features at a given point or in a specific rectangle on the map. You can query for features and use the returned objects to add your own annotations or polylines to the map.
We brought support for VoiceOver to improve the accessibility of our maps. We’ve made the user location, annotations, compass, attribution, and map controls accessible for VoiceOver.
This update is packed with a long list of exciting other new features and enhancements. Take a look at the changelog for the complete details and browse our improved documentation to dive right in. We’re looking forward to showing you more about the latest features over the next few weeks. Have a great example to share? Let us know.
The team at Niantic, who built Pokémon Go, did amazing work. Pokémon brings augmented reality mainstream, and the playful design of the maps is the foundation for all of it. Niantic’s CEO John Hanke, who was the former CEO at Keyhole (the team that started Google Maps), deserves huge credit for making location feel so smoothly integrated into the gameplay. Mashable posted an incredible interview with John that everyone thinking about location and AR should read.
The designers at Niantic, lead by Tatsuo Nomura, just set a new bar for AR maps as dynamic real-time representations of our world. Now all other AR app teams will need to design the look and feel of their maps to make their games stand out. Pokémon Go’s use of custom design shows the power of vector tiles, and the need to let application developers customize every part of their game’s experience.
In honor of the design team at Niantic, here is what I made with Mapbox Studio and Mapbox GL JS. I hope this is just the start of a lot more games experimenting with location and design. Use the keyboard to move around the map.
Only one week until this year’s State of the Map US in Seattle! We’re excited to kick off the weekend’s conference with a welcome party at Rhein Haus next Friday, July 22nd at 7:30pm. Join us to catch up with the community, welcome new members, and compete in a few rounds of bocce ball!
If you can’t make the social event, find us at our booth or the following session and workshops throughout the weekend:
We are excited to welcome Upendra Karukonda to our expanding data team in Bengaluru. He will focus on improving OpenStreetMap through satellite imagery, telemetry and customer-feedback data.
Upendra holds a degree in Information Techology from Vignan Institute of Information Technology, Visakhapatnam. Before joining Mapbox he was working at Clove Technologies on digitizing the data of Australian Cities.
Join us in welcoming Natalie aboard the Mapbox team! Natalie will be leading out event strategy, working to grow Mapbox’s presence across industries.
Natalie comes to Mapbox after earning an MBA at MIT’s Sloan School of Management, where she led the Hacking Arts festival and created resources for MIT student entrepreneurs. Prior to business school, she worked as a documentary television producer on shows like How The States Got Their Shapes, a maps-focused program! We’re excited for Natalie to bring her creative eye, logistical chops, and passion for mapping to the team.
Fresh, high-resolution imagery lets mappers add more up-to-date, detailed data to OpenStreetMap.
In November 2014, DigitalGlobe released 475,000 km2 of imagery of Cameroon in response to a polio outbreak and an influx of refugees fleeing conflict in the Central African Republic. Dozens of mappers responded by adding 128,865 km of roads and 1,421,018 buildings to OpenStreetMap.
Use OSM Analytics to visualize mapping in Cameroon since November 2014.
Explore the Cameroon imagery in Mapbox Satellite Streets, which includes labels and points of interest.
Climate models predict massive shifts in temperature and precipitation over the next 100+ years. These changes will not be the same everywhere; they will appear in complex patterns across the earth’s landscapes. To visualize climate change over space and time, I used data driven design to compare maximum temperatures today against predictions for 2050 and 2070.
Drag the marker over a land area to see the predicted annual max temperature at each of the three dates. The map’s dynamic styling will highlight areas that currently share this approximate max temperature. For example, if you drag the marker to New York, Louisiana turns red. This shows that New York is predicted to have the same highest temperatures in 2070 as Louisiana has now.
Climate data like that from WorldClim (the source for this visualization’s numbers) is usually formatted as rasters. The continous nature of the climate system–multivariate, and changing gradually over space–is better represented by rows and columns of pixels, rather than by discrete vector objects like points and polygons. However, their fixed resolution, high bit depths, and heavy filesize make the rasters unwieldy in web and mobile applications.
By vectorizing these data, we can take advantage of Mapbox tools to create a striking dynamic visualization. And by vectorizing into a triangular mesh–effectively an alternate rasterization–we can store arbitrary variables to represent time and other dimensions.
After a little bit of raster data wrangling, I used makesurface to “triangulate” the data and tippecanoe to create vector tiles. After uploading via Mapbox Studio, I could load and style these data dynamically using Mapbox GL JS.
Applying data driven styling
Each vector shape contains three points (or bands) of data corresponding to each of the three years. I represented the data as three separate layers, so they can be styled independently. When a marker is dragged to a new location, we locate the triangle polygon under it using queryRenderedFeatures, then use the band values from that polygon as the new data thresholds to style each layer’s fill-color paint property. Take the coordinates around Toledo, Spain as example:
// Polygon band values around Toledo, Spain:// band_1: 315// band_2: 366// band_3: 386varcurrentTemp=band_3;map.setPaintProperty('temperature2070','fill-color',{property:'band_1',stops:[[currentTemp-20,'rgba(250,111,116,0)'],[currentTemp-10,'rgba(250,111,116,0.75)'],[currentTemp+10,'rgba(250,111,116,0.75)'],[currentTemp+20,'rgba(250,111,116,0)']]});map.setPaintProperty('temperature2050','fill-color',{property:'band_2',stops:[[currentTemp-20,'rgba(179,108,163,0)'],[currentTemp-10,'rgba(179,108,163,0.75)'],[currentTemp+10,'rgba(179,108,163,0.75)'],[currentTemp+20,'rgba(179,108,163,0)']]});map.setPaintProperty('temperature2016','fill-color',{property:'band_3',stops:[[currentTemp-20,'rgba(62,113,154,0)'],[currentTemp-10,'rgba(62,113,154,0.75)'],[currentTemp+10,'rgba(62,113,154,0.75)'],[currentTemp+20,'rgba(62,113,154,0)']]});
Applying transparent fill-color ramps around triangles that fit within currentTemp value creates a clean multivariate display. Lastly, with the coordinate data returned from the dragged marker, we make a reverse geocoding request request to display the place name.
Looking to create vectorized versions of your own rasterized datasets? Reach out to us with any questions on Twitter: @Mapbox.
RentPath helps consumers find apartments and houses for rent, whether you’re looking for a modern apartment in San Francisco or a townhouse in Illinois. Its websites Rent.com, Rentals.com, and ApartmentGuide.com show up-to-date listings and direct consumers to appropriate rental properties with newly redesigned dynamic maps that use our custom map styles.
These websites also let you zoom in and out of neighborhoods where listings are clustered to see nearby landmarks or businesses, all while showing the relevant listing in your search with the help of Mapbox GL JS and custom markers.
Explore fast-loading maps and custom markers using Studio with GL JS and visit Rent.com to take your apartment search to the next level.
We are thrilled to welcome Marissa Fullford to the operations team at Mapbox! Marissa joins us to support our growing team - to make sure we all have what we need to work fast and well, that our DC office runs smoothly, and to nail the details behind the scenes that make our company run.
Before Mapbox, Marissa was a student at Arizona State where she served as the vice president of student government, a job similar to what she does now, just for a few thousand more people. She also spent a summer interning with Amazon’s human resources department.
With feature querying in the latest release of our iOS SDK, your iOS application can take any street, landmark, or business that’s on the map and display additional information about it anywhere on the screen. That way you don’t have to clutter up the map itself with these details. Feature querying gives you access to the raw geometry and metadata that the SDK uses to draw the map, whether it’s the OpenStreetMap-based Mapbox Streets source that powers the default base map or your own datasets that you manage in Mapbox Studio. Feature querying uses the data that the user has already downloaded in order to view the map, so it even works offline.
Now that it’s so easy to connect OpenStreetMap and Wikidata, let’s see how you can use feature querying in your own application to take advantage of these two open data projects. I built a simple application for iPhone and iPad, shown below. When you press and hold on a bridge on the map, the bridge is highlighted and images of other works by the bridge’s designer pop up:
Tap on the Roebling Suspension Bridge to reveal John A. Roebling’s other suspension bridges, including the famed Brooklyn Bridge.
How it works
The SDK fetches Mapbox Vector Tiles, which contain raw data and associated metadata for each business, building, street, and pond. The SDK uses this data to draw the map, which is why you can easily switch styles or tilt the map without having to redownload any map tiles.
First, I obtain the bridge feature under the user’s finger via the -[MGLMapView visibleFeaturesAt:] method. The feature’s raw geometry allows me to draw a highlight over the road, using a shape annotation, but I could just as easily position a popover somewhere along the road or display the road’s name in the navigation bar. Thanks to the SDK’s offline maps feature, the application can extract the raw geometry and tags from the vector tiles even if the user puts the phone in Airplane Mode.
For this application, though, I want to get some additional metadata about the bridge that’s normally omitted from the vector tiles to reduce data usage. So I pass the feature’s unique identifier into OpenStreetMap’s Overpass API to get all the raw tags for that feature in JSON format, including the Wikipedia article and Wikidata item. Finally, I ask the Wikidata Query Service for freely licensed Wikimedia Commons images of other works by that bridge’s architect.
Wikidata opens the door to a wealth of free content, including this photo of the Roebling Suspension Bridge from Wikimedia Commons. (Adam Sofen, CC BY)
Notably, none of these steps involves fuzzy text searches, specialized geospatial software, or Wikipedia’s labyrinthine wikitext format. The entire process is based on definitive relationships and structured JSON data. What’s more, each tool I used is open source software: the Overpass API, the Wikidata Query Service, and the Mapbox iOS SDK. Likewise, the OpenStreetMap and Wikidata data sets are both freely licensed projects built largely by volunteer contributions.
Aarthy, Ramya and I are going to be at The Fifth Elephant on the 28th and 29th of July, where I will be speaking about using TileReduce to parallelise large scale spatial analysis.
The talk will cover the basics - starting off with web maps, tiling and tile formats before moving on to explaining how you can quickly start analysing large geo datasets with JavaScript. Here’s a sneak peek at the talk outline.
Come and see us there to chat about open maps, Mapbox or anything else!