Skip to content

Instantly share code, notes, and snippets.

@tmcw
Forked from anonymous/blog-fake.rss
Created December 9, 2016 00:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tmcw/530a69af55a3413fca3de1ddb1692cfb to your computer and use it in GitHub Desktop.
Save tmcw/530a69af55a3413fca3de1ddb1692cfb to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xml:base="/blog.rss" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:mapbox="http://mapbox.com/">
<channel>
<title>Blog - Mapbox</title>
<link>https://www.mapbox.com/blog</link>
<description>Updates from the Mapbox team.</description>
<language>en</language>
<item>
<title>Kevin joins Mapbox!</title>
<link>https://www.mapbox.com/blog/welcome-kevin-fu/</link>
<description>&lt;p&gt;We’re excited to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/kevin-fu/&quot;&gt;Kevin Fu&lt;/a&gt; who is joining the Mapbox business team! Kevin will be working out of the DC Garage, where he’ll help grow our enterprise customer base.&lt;/p&gt;
&lt;p&gt;Kevin joins us from DC-based startup Localist, where he connected universities with engagement and event management software.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c8.staticflickr.com/6/5482/30679872383_31c7fde771_z.jpg&quot; alt=&quot;kevin-fu&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Welcome, Kevin!&lt;/p&gt;
</description>
<pubDate>Wed, 07 Dec 2016 11:00:00 -0500</pubDate>
<dc:creator>Zach Beattie</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-kevin-fu/</guid>
</item>
<item>
<title>Build Mapbox GL JS plugins</title>
<link>https://www.mapbox.com/blog/build-mapbox-gl-js-plugins/</link>
<description>&lt;p&gt;We spend days making sure that our maps are rendered quickly and beautifully, but that’s only part of what online maps are. Maps aren’t just a canvas for data: they’re also the zoom controls, scale indicators, search bars, and other user interface elements that make using the map possible. We just established the control API for Mapbox GL JS making it possible to write and distribute controls, and we want to invite everyone to tinker.&lt;/p&gt;
&lt;h2 id=&quot;whats-a-control&quot;&gt;What’s a control?&lt;/h2&gt;
&lt;p&gt;Mapbox GL JS comes with four default controls:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Navigation&lt;/strong&gt;: buttons for zooming and rotating the map&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geolocation&lt;/strong&gt;: a button to find the user’s position&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scale&lt;/strong&gt;: a display for pixel-to-meter scale&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Attribution&lt;/strong&gt;: a display for copyright and terms information&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are great examples of what controls can do: they can manipulate the map, like the navigation and geolocation controls do, or they can display information drawn from the map, as in the scale and attribution controls. They use the same plugin API we’ve just published so that you can implement similar controls and even more powerful ones.&lt;/p&gt;
&lt;p&gt;Defined explicitly, a control:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Has an HTML element that ends up in the map, like a button or div&lt;/li&gt;
&lt;li&gt;Has access to the map object, both to read information and manipulate it&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is only one kind of Mapbox GL JS add-on - there are also wrappers, like &lt;a href=&quot;https://github.com/uber/react-map-gl&quot;&gt;react-map-gl&lt;/a&gt;, and &lt;a href=&quot;https://github.com/mapbox/mapbox-gl-leaflet&quot;&gt;mapbox-gl-leaflet&lt;/a&gt;, and soon there’ll be custom source types, to support new formats. This is the first of multiple plugin APIs, and by no means the limit to Mapbox GL JS’s flexibility.&lt;/p&gt;
&lt;h2 id=&quot;the-control-api&quot;&gt;The control API&lt;/h2&gt;
&lt;p&gt;The control API is documented as an interface: &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/#IControl&quot;&gt;the IControl interface&lt;/a&gt;. This means that a control can be any object as long as it implements two mandatory methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;onAdd(map): element&lt;/code&gt;: called when a control is added to the map, with the map as the first argument. This method should return an element. The control can save a reference to the map, or use the map object to bind event listeners.&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;onRemove(map)&lt;/code&gt;: called when a control is removed from the map, with the map as a first argument. This gives the control a chance to unbind event listeners, if it bound any in &lt;code class=&quot;highlighter-rouge&quot;&gt;onAdd&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We designed this interface specifically so that you can implement plugins any way you want: you can use JavaScript’s new ES6 classes, or traditional prototype-based objects, or the module pattern. You also don’t need to use any part of the &lt;code class=&quot;highlighter-rouge&quot;&gt;mapboxgl&lt;/code&gt; code to create plugins, so you can completely avoid any dependency conflict or complex &lt;code class=&quot;highlighter-rouge&quot;&gt;peerDependency&lt;/code&gt; system.&lt;/p&gt;
&lt;p&gt;Our documentation includes, inline, a minimum viable example of a plugin:&lt;/p&gt;
&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HelloWorldControl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;HelloWorldControl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;onAdd&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_map&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;div&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;className&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;mapboxgl-ctrl&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Hello, world&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;HelloWorldControl&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;prototype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;onRemove&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;parentNode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;removeChild&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_container&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;_map&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This control only adds a little ‘Hello, world’ text to the map, but you can use it as a starting point for your own.&lt;/p&gt;
&lt;h2 id=&quot;building-an-ecosystem&quot;&gt;Building an ecosystem&lt;/h2&gt;
&lt;p&gt;By establishing a stable API, we’re trying to create the basis for an ecosystem, and we’re already getting started. Here at Mapbox, we’ve written plugins for the &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-geocoder/&quot;&gt;Geocoding API&lt;/a&gt;, &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-directions/&quot;&gt;Directions API&lt;/a&gt;, and for &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-draw/&quot;&gt;drawing&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Tue, 06 Dec 2016 07:00:00 -0500</pubDate>
<dc:creator>Tom MacWright</dc:creator>
<mapbox:summary>Extend Mapbox GL w/ plugins. You can add a button to make the
map do a barrel roll, if you wanted to, and you do.
</mapbox:summary>
<guid isPermaLink="true">https://www.mapbox.com/blog/build-mapbox-gl-js-plugins/</guid>
</item>
<item>
<title>Open Mapping at OGP Summit 2016</title>
<link>https://www.mapbox.com/blog/open-mapping-in-france/</link>
<description>&lt;p&gt;Open Government Partnership (OGP) Summit week is here, hosted by this year’s chair France.
After the 2015 OGP Summit’s &lt;a href=&quot;http://www.opengovpartnership.org/blog/mikel-maron/2015/12/16/transforming-open-government-through-open-mapping&quot;&gt;Open Mapping efforts&lt;/a&gt;, we are excited that open mapping will play an even bigger role in 2016.&lt;/p&gt;
&lt;p&gt;I will be in Paris presenting &lt;a href=&quot;https://www.mapbox.com/blog/mapbox-cities/&quot;&gt;Mapbox Cities&lt;/a&gt; at the panel “&lt;a href=&quot;https://www.mapbox.com/events/ogp-summit-paris/&quot;&gt;Leveraging the Citizen Open Mapping Movement&lt;/a&gt;” on Thursday. Another relevant panel for open mapping is “&lt;a href=&quot;https://en.ogpsummit.org/osem/conference/ogp-summit/program/proposal/417&quot;&gt;The impact of satellite imagery on open government&lt;/a&gt;”.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/XWtLS5o.gif&quot; alt=&quot;OGP Summit&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The French government has been advancing open mapping in cooperation with the OpenStreetMap community through its spin-off organization Etalab by making &lt;a href=&quot;https://www.etalab.gouv.fr/the-first-french-collaborative-national-address-database-is-now-online-and-freely-accessible&quot;&gt;addresses openly accessible&lt;/a&gt;. Another exemplary project is &lt;a href=&quot;https://www.etalab.gouv.fr/opensolarmap&quot;&gt;OpenSolarMap&lt;/a&gt; which will also be presented during the Citizen Open Mapping panel on Thursday. SNCF, the French railway company, has set an example with their &lt;a href=&quot;https://challenge.sncf.com/open-street-map/&quot;&gt;SNCF Challenge Open Innovation&lt;/a&gt;, making all their stations and other data available on OpenStreetMap.&lt;/p&gt;
&lt;p&gt;As we’re in the process of shortlisting our &lt;a href=&quot;https://www.mapbox.com/blog/mapbox-cities/&quot;&gt;Mapbox Cities&lt;/a&gt; finalists, it’s great to see the emphasis on subnational partnerships in the Open Government Partnership on Friday afternoon.&lt;/p&gt;
&lt;p&gt;Are you in Paris this week? Mapbox sponsors the &lt;a href=&quot;https://www.eventbrite.fr/e/billets-mapathon-openstreetmap-paris-decembre-2016-lll-29743343140&quot;&gt;OpenStreetMap mapathon&lt;/a&gt; organised by &lt;a href=&quot;http://www.cartong.org/&quot;&gt;CartONG&lt;/a&gt; the same evening. Be sure to &lt;a href=&quot;https://www.eventbrite.fr/e/billets-mapathon-openstreetmap-paris-decembre-2016-lll-29743343140&quot;&gt;sign up&lt;/a&gt; for the free event, even if you’re not attending the summit.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.twitter.com/dscientificly&quot;&gt;Catch me&lt;/a&gt; at the summit or during the mapathon to talk smart citizens, open mapping and, of course, Mapbox!&lt;/p&gt;
</description>
<pubDate>Tue, 06 Dec 2016 05:00:00 -0500</pubDate>
<dc:creator>Christina Franken</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/open-mapping-in-france/</guid>
</item>
<item>
<title>Cory joins Mapbox!</title>
<link>https://www.mapbox.com/blog/welcome-cory-guillory/</link>
<description>&lt;p&gt;Big welcome to &lt;a href=&quot;https://www.mapbox.com/about/team/cory-guillory/&quot;&gt;Cory Guillory&lt;/a&gt; who has joined the Mapbox team in DC!&lt;/p&gt;
&lt;p&gt;Cory works with Enterprise customers, putting together agreements and helping connect companies with the tools they need to build applications with Mapbox. Cory comes to us from Socrata, where he helped government organizations expand their open data programs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c8.staticflickr.com/6/5718/30551730623_d0a4286d35_z.jpg&quot; alt=&quot;cory-guillory&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Welcome, Cory!&lt;/p&gt;
</description>
<pubDate>Fri, 02 Dec 2016 07:00:00 -0500</pubDate>
<dc:creator>Zach Beattie</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-cory-guillory/</guid>
</item>
<item>
<title>Welcome Miles!</title>
<link>https://www.mapbox.com/blog/welcome-miles-sackler/</link>
<description>&lt;p&gt;We’re excited to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/miles-sackler/&quot;&gt;Miles Sackler&lt;/a&gt; to Mapbox! Working closely with the business and engineering teams, Miles will help enterprise users build amazing applications with Mapbox.&lt;/p&gt;
&lt;p&gt;Before joining Mapbox, Miles built and supported analytical and big data tools at Palantir. He graduated with a bachelor’s degree in computer science and a minor in mathematics from the University of Washington. When his hands aren’t on a keyboard, Miles gets outdoors. He’s skied the Rockies from Big Sky to Telluride and is among a handful of scuba divers certified at the Baltimore Aquarium to drop into the tanks and get on the other side of the glass.
&lt;img src=&quot;https://c7.staticflickr.com/6/5693/30968988790_0b31ab94a2_z.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Welcome, Miles!&lt;/p&gt;
</description>
<pubDate>Thu, 01 Dec 2016 11:00:00 -0500</pubDate>
<dc:creator>Matt Irwin</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-miles-sackler/</guid>
</item>
<item>
<title>Announcing Mapbox.cn</title>
<link>https://www.mapbox.com/blog/announcing-mapbox-cn/</link>
<description>&lt;p&gt;Today we are announcing &lt;a href=&quot;https://www.mapbox.cn/&quot;&gt;Mapbox.cn&lt;/a&gt;, making Mapbox available at high speed in China. We are expanding our global Mapbox API infrastructure to bring the fastest possible service to anyone using our maps in China or through Chinese mobile carriers internationally.&lt;/p&gt;
&lt;p&gt;Traditional map services are either blocked in China or suffer from slow internet connections. Our Mapbox.cn infrastructure allows for unparalleled speed advantages for mobile users both inside and out of the country. Mapbox.cn is the same mapping platform that’s powering hundreds of millions of users for companies like Airbnb, Weather.com, and Pinterest, but running directly in China.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5725/30979570830_4b094e8790_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Mapbox.cn adds an Amazon Web Services region and 20 additional edge servers in China to our global configuration of 9 regions and 79 edge servers. This is both expanding our edge caching network into China and our ability to serve maps directly from within the country. In all, Mapbox.cn speeds up the experience for users around the world. Our Mapbox API endpoints are fast no matter where a user is viewing maps from.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5683/31204443592_7bb6bfafdf_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Good network performance within China is not only important for fast domestic services, but also critical when Chinese travelers use maps abroad. When roaming, phones connect through the carrier network to the home country and only access the internet there. Our Mapbox.cn infrastructure is architected to serve fast maps in China and for Chinese travelers across the world.&lt;/p&gt;
&lt;p&gt;To learn more about maps for China check out &lt;a href=&quot;https://www.mapbox.cn/&quot;&gt;Mapbox.cn&lt;/a&gt; (Chinese) or &lt;a href=&quot;mailto:china@mapbox.com&quot;&gt;email us&lt;/a&gt; to request early access.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5453/30538072553_b2a04eb5be_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</description>
<pubDate>Thu, 01 Dec 2016 08:00:00 -0500</pubDate>
<dc:creator>Eric Gundersen</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/announcing-mapbox-cn/</guid>
</item>
<item>
<title>Mapping with action cams, Mapillary and OpenStreetMap</title>
<link>https://www.mapbox.com/blog/streetlevel-photography/</link>
<description>&lt;p&gt;&lt;a href=&quot;http://mapillary.com/&quot;&gt;Mapillary&lt;/a&gt; has made mapping with street level imagery in &lt;a href=&quot;http://www.openstreetmap.org/&quot;&gt;OpenStreetMap&lt;/a&gt; accessible to anyone. Simply take pictures from your phone using the Mapillary app, hit upload and use them directly in OpenStreetMap editors like iD or JOSM. The pictures are shared publicly on Mapillary.com so the entire mapping community benefits from a more complete image dataset of the world.&lt;/p&gt;
&lt;p&gt;To take things up a notch, I started to use a rig of four action cameras mounted to my car’s roof for surveys. While still a budget approach, this makes my outings more efficient by taking multiple pictures from different angles at the same time. Over time I’ve streamlined the hardware configuration and the workflow. Here’s a walkthrough of the equipment I’ve found works best. This setup works great with Mapillary, but would also plug into the comparable &lt;a href=&quot;http://openstreetcam.org/&quot;&gt;OpenStreetCam&lt;/a&gt; or your own custom workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5499/30505109934_4d6b3c9c68.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;Four action cams set up to capture a maximum amount of imagery for each frame.&lt;/div&gt;
&lt;h3 id=&quot;cameras&quot;&gt;Cameras&lt;/h3&gt;
&lt;p&gt;There are many affordable action cameras that take high definition photos. For street level photos, you’ll want a camera that automatically tags photos with GPS coordinates. I’ve evaluated several cameras, but I like the Sony action cameras, like the &lt;a href=&quot;https://www.amazon.com/dp/B01M1DMT46&quot;&gt;Sony HDR-AS300/W&lt;/a&gt; or older model &lt;a href=&quot;https://www.amazon.com/dp/B00R1COCVI&quot;&gt;Sony HDR-AS200VR/W&lt;/a&gt;, for their reliability and image quality. They’re also tiny, lightweight, splash-proof, and they include a 1/4”-20 socket, which is compatible with standard photography
tripods and mounts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5443/31339352325_17a647fc5b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;I guarantee you there is no problem with the size of my hands&lt;/div&gt;
&lt;p&gt;When taking street level photos, more is better. I set my cameras to record at 1 second intervals and face them front, back, left, and right. The best placement is high up on your vehicle, aimed as level as possible to the horizon and tilted slightly upwards to avoid including your vehicle in the frame.&lt;/p&gt;
&lt;p&gt;Remember to also buy a memory card for each camera. The &lt;a href=&quot;https://www.amazon.com/dp/B010Q588D4&quot;&gt;SanDisk 64GB microSD&lt;/a&gt; is enough to hold roughly
40,000 photos, so you won’t need to worry about running out of space or swapping cards. The Sony cameras optionally include a wireless “LiveView” wrist strap remote control that gives you a view of what the cameras see, and allows you to start and stop multiple cameras at the same time.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5642/30505110034_0f7d179f16.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;Wirelessly control your cameras with the LiveView remote&lt;/div&gt;
&lt;h3 id=&quot;mounts&quot;&gt;Mounts&lt;/h3&gt;
&lt;p&gt;Suction cup mounts are quite sturdy. These mounts have a push button and lever arm
to keep them mounted securely to any smooth surface. I’ve even seen them attached to
racecars and airplane wings.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5492/30505109864_ece21ddab5.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;Suction cup mounts attach securely to any smooth surface&lt;/div&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.amazon.com/dp/B002K8Q0EU&quot;&gt;Delkin Fat Gecko Single Suction Cup Mounts&lt;/a&gt; also have a standard 1/4” tripod thread and can support up to 4 pounds of equipment. This mount also includes a 4” extension arm, which raises the camera up a little bit higher above the vehicle. I’ve found this to be very helpful for seeing around traffic.&lt;/p&gt;
&lt;p&gt;It’s not strictly necessary, but adding &lt;a href=&quot;https://www.amazon.com/dp/B009EF8U04/&quot;&gt;1/4”-20 Black Stainless Steel hex nuts&lt;/a&gt; as spacers can ensure a better fit between the camera and mount. You can also buy them at a local hardware store.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5516/30959225030_84dc0212b4.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;A 1/4&quot;-20 hex nut will ensure a better fit between the mount and camera&lt;/div&gt;
&lt;h3 id=&quot;batteries&quot;&gt;Batteries&lt;/h3&gt;
&lt;p&gt;An action camera will only work for about an hour before the built-in battery runs out.
I originally ran long USB cables from a cigarette lighter adapter to deliver power to
my cameras on the roof. This was inconvenient, increased set-up time, prevented easy access to the passenger door, and the longest cables wouldn’t deliver enough power due to voltage drop.&lt;/p&gt;
&lt;p&gt;Instead, I prefer to attach a small portable battery, like the &lt;a href=&quot;https://www.amazon.com/dp/B00Y2PX4U2&quot;&gt;RAVPower Portable 6700mAh Charger&lt;/a&gt;, to each mount. Then I use short cables, like the &lt;a href=&quot;https://www.amazon.com/dp/B012MEBIZC&quot;&gt;Raysun 6” Angled Micro USB Cable&lt;/a&gt;, to connect each camera to its battery.&lt;/p&gt;
&lt;p&gt;This makes it much easier to mount the cameras to any vehicle. With 6700mAh of power, this battery
will power your camera for about 10-12 hours.&lt;/p&gt;
&lt;p&gt;I also found that the &lt;a href=&quot;https://www.amazon.com/dp/B000HCMIXS&quot;&gt;Raine Horizontal Knife Sheaths&lt;/a&gt; happen to be the right size to hold a battery onto the extension arm of the mount. These tactical pouches are sometimes also sold as flashlight or ammo holders, but any small weatherproof pouch that attaches horizontally to a belt will work here.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5476/30506782964_21c4433d01.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;A battery tucked inside its sheath&lt;/div&gt;
&lt;p&gt;Finally, if you have multiple cameras and batteries, it helps to have a charger that
can supply a lot of power to your USB devices, like the &lt;a href=&quot;https://www.amazon.com/dp/B0115MW8TC&quot;&gt;AmazonBasics 6 port USB charger&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;storage&quot;&gt;Storage&lt;/h3&gt;
&lt;p&gt;To protect my cameras from scratches, I slip &lt;a href=&quot;https://www.amazon.com/dp/B015RPRWI0&quot;&gt;Black Squid Microfiber Pouches&lt;/a&gt; over them when they’re not in use. These pouches are also useful for wiping down the lenses to keep them free of smudges and dust.&lt;/p&gt;
&lt;p&gt;For longer storage or shipping, everything packs neatly into a professional
padded camera bag. Bags like the &lt;a href=&quot;https://www.amazon.com/dp/B00ZP51F1I&quot;&gt;Yaagle Camera Backpack&lt;/a&gt; have velcro dividers that can be arranged for a custom fit around your camera equipment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5822/31183334352_30cbc5c605.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;center caption&quot;&gt;Protect your gear with a camera bag like this one&lt;/div&gt;
&lt;h3 id=&quot;multi-camera-rigs&quot;&gt;Multi-Camera Rigs&lt;/h3&gt;
&lt;p&gt;While front-facing imagery offers the most important view of real world driving
conditions, rear and side-facing imagery can be helpful too.&lt;/p&gt;
&lt;p&gt;With 360° of coverage, you’ll spot even more features to add to OpenStreetMap:
business names, parking restrictions, addresses, bus stops, vegetation,
and street art. You’ll also see more street signs at intersections, and be able
to map details about pedestrian or wheelchair accessibility.&lt;/p&gt;
&lt;p&gt;When I want to mount extra cameras or &lt;a href=&quot;http://scanse.io/&quot;&gt;other equipment&lt;/a&gt; to the
top of a vehicle, a multi-camera rig lets me attach more things with less hassle.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.amazon.com/dp/B004HK0RXY&quot;&gt;Desmond Dual Camera Bracket&lt;/a&gt; offers several standard 1/4”-20 attachment points for other equipment. &lt;a href=&quot;https://www.amazon.com/dp/B000L47AHG&quot;&gt;Giottos Mini Ball Heads&lt;/a&gt; attach directly to the dual camera bracket and allow each camera to be positioned independently of the rig.&lt;/p&gt;
&lt;iframe width=&quot;800&quot; height=&quot;500&quot; src=&quot;https://embed-v1.mapillary.com/embed?version=1&amp;amp;filter=%5B%22all%22%5D&amp;amp;map_filter=%5B%22all%22%5D&amp;amp;image_key=hOxbGS1UfiA5xNgOpUuR7A&amp;amp;client_id=LXBnR2lubDMyMmZSSFpTZWJXSDFtUTo0NDkzNWVlMzg2OGU4MWE1&amp;amp;style=classic&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;center caption&quot;&gt;Take a virtual drive around San Francisco&#39;s Mission District with Mapillary&lt;/div&gt;
&lt;p&gt;Want to know more about street level photography, discuss camera gear, or share ideas about how to use this imagery to know more about the world? &lt;a href=&quot;https://twitter.com/bhousel&quot;&gt;Reach out to me&lt;/a&gt; on Twitter and lets chat!&lt;/p&gt;
</description>
<pubDate>Thu, 01 Dec 2016 04:00:00 -0500</pubDate>
<dc:creator>Bryan Housel</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/streetlevel-photography/</guid>
</item>
<item>
<title>3DR combines drone imagery with Autodesk</title>
<link>https://www.mapbox.com/blog/drone-imagery-with-3dr/</link>
<description>&lt;p&gt;3D Robotics’ new app, &lt;a href=&quot;https://3dr.com/&quot;&gt;Site Scan&lt;/a&gt;, combines imagery from their &lt;a href=&quot;https://3dr.com/enterprise/industries/construction/&quot;&gt;construction drone&lt;/a&gt;, Mapbox maps, and AutoCAD data to prevent expensive mistakes on constructions sites. Site Scan is the first end-to-end application to offer autonomous drone image capture and seamless cloud integration with Autodesk.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5804/30357010253_672f76145b_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of 3DR’s customers recently used the &lt;a href=&quot;https://3dr.com/site-scan-bim/&quot;&gt;Building Information Modeling (BIM) functionality&lt;/a&gt; to identify a problem in the placement of pipes on an industrial project. As foundation work ground to a halt for days, engineers captured drone imagery and identified the root cause of the issue: a concrete footing had been over-poured and displaced the pipes. With data from one flight, Mapbox maps, and Autodesk integration, the team identified their next actions and resumed work.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5800/31164240385_c2ec148c62_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Check out &lt;a href=&quot;https://www.mapbox.com/industries/drones/&quot;&gt;what else you can do with Mapbox and drones&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Wed, 30 Nov 2016 13:00:00 -0500</pubDate>
<dc:creator>Hannah Judge</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/drone-imagery-with-3dr/</guid>
</item>
<item>
<title>Jayana joins Mapbox!</title>
<link>https://www.mapbox.com/blog/welcome-jayana-charles/</link>
<description>&lt;p&gt;We’re stoked to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/jayana-charles&quot;&gt;Jayana Charles&lt;/a&gt; to the operations team at Mapbox Bangalore. Jayana will work on everything from creating an amazing work space for our team, supporting event logistics and coordinating travel, to helping scale our growing data team in India.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5566/31202060531_cf882b40e6_b.jpg&quot; alt=&quot;jayana&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Prior to Mapbox, Jayana wore many hats at companies such as Hewlett Packard and IBM, where she developed mission critical processes to provide business insights to clients. In her free time, she loves to read books, play board games, garden, and spend time with her daughter.&lt;/p&gt;
&lt;p&gt;Welcome to the team, Jayana!&lt;/p&gt;
</description>
<pubDate>Wed, 30 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Shiv Ramachandran</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-jayana-charles/</guid>
</item>
<item>
<title>MongoDB 3.4 now features Mapbox in Compass</title>
<link>https://www.mapbox.com/blog/mongodb-newrelease-compass/</link>
<description>&lt;p&gt;MongoDB’s &lt;a href=&quot;https://www.mongodb.com/press/3_4&quot;&gt;new 3.4 release&lt;/a&gt; now includes &lt;a href=&quot;https://www.mapbox.com/blog/mongodb/&quot;&gt;Compass with maps powered by Mapbox&lt;/a&gt;. Compass’s intuitive UI enables anyone on your team, from data scientists to developers to nontechnical team members, to run ad hoc queries and visually explore your data.&lt;/p&gt;
&lt;p&gt;Compass and its dynamic map widget are powered by &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/&quot;&gt;Mapbox GL JS&lt;/a&gt; and clearly display data over &lt;a href=&quot;https://www.mapbox.com/maps/light-dark/&quot;&gt;Mapbox Light &amp;amp; Dark&lt;/a&gt; styles.&lt;/p&gt;
&lt;p&gt;Take a look at how MongoDB now lets you write queries and update a schema for bike share data entirely within Compass:&lt;/p&gt;
&lt;p&gt;Upload your bike share database, then decide which area you’d like to analyze:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5479/31075493455_1831e7f99e.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Explore which bike share stations are near transit within your map:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5715/31039742156_cdffd2027d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Compare the performance of your query to your database as whole:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5603/30961307971_e0bd049bfa.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Got a great story from data you analyzed with maps in MongoDB Compass? &lt;a href=&quot;https://twitter.com/alinapaz&quot;&gt;Hit me up on Twitter&lt;/a&gt;, and check out how Mapbox drives &lt;a href=&quot;https://www.mapbox.com/industries/business-intelligence/&quot;&gt;better business intelligence&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Wed, 30 Nov 2016 00:00:00 -0500</pubDate>
<dc:creator>Angelina Calderon</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/mongodb-newrelease-compass/</guid>
</item>
<item>
<title>Exploring NYC Open Data with 3D hexbins</title>
<link>https://www.mapbox.com/blog/3d-hexbin/</link>
<description>&lt;p&gt;We’re always looking for interesting data to explore with Mapbox tools, so when we found this cool dataset of 311 incident reports from &lt;a href=&quot;https://data.cityofnewyork.us/&quot;&gt;NYC Open Data&lt;/a&gt; we had to check it out. In the map below, built with &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/&quot;&gt;Mapbox GL JS&lt;/a&gt; and &lt;a href=&quot;http://turfjs.org/&quot;&gt;Turf.js&lt;/a&gt;, you can explore restaurant disturbance complaints in New York City from 2015. We visualized all 38,400 restaurant-related incidents using 3D hexbins. Click on a hexbin to drill down to details for each complaint.&lt;/p&gt;
&lt;p&gt;In Manhattan, the highest density of complaints are in Uptown, the Lower East Side, and Midtown. Using the filters and drill-downs on the dashboard, you can tell that noise from bars and restaurants makes up more than half of all complaints. Would you want to open a business or rent an apartment near the loudest blocks?&lt;/p&gt;
&lt;div class=&quot;keyline-all round shadow space-bottom4 space-top4&quot;&gt;&lt;video autoplay=&quot;autoplay&quot; loop=&quot;loop&quot; style=&quot;display:block; width:100%; max-width:833px;&quot;&gt;&lt;source src=&quot;https://player.vimeo.com/external/192421113.hd.mp4?s=4ce03c026baa188094992c7591c7db1fc349a05b&amp;amp;profile_id=174&quot; /&gt;&lt;/video&gt;&lt;/div&gt;
&lt;p&gt;In the datasets, each &lt;a href=&quot;https://data.cityofnewyork.us/Social-Services/311-Service-Requests-from-2010-to-Present/erm2-nwe9&quot;&gt;311 incident&lt;/a&gt; and &lt;a href=&quot;https://data.cityofnewyork.us/Business/Inspections/jzhd-m6uv&quot;&gt;restaurant&lt;/a&gt; is geocoded to the nearest street centerline. Hexbinning is useful here because multiple complaints at the same location would appear as a single incident if we had used a dot map, but with hexbins, you can quickly find the areas with high levels of complaints.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5480/30329356764_92bf39fca4_b.jpg&quot; alt=&quot;hexbin vs. dots&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To create the hexbins, I used &lt;a href=&quot;http://turfjs.org/docs/#hexgrid&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;turf.hexGrid()&lt;/code&gt;&lt;/a&gt; to create a grid, then aggregated the points into bins using &lt;a href=&quot;http://turfjs.org/docs/#within&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;turf.within()&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I used the &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-style-spec/#layers-fill-extrusion&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;fill-extrusion&lt;/code&gt;&lt;/a&gt; layer type coupled with &lt;a href=&quot;https://www.mapbox.com/help/gl-dds-ref/&quot;&gt;data driven styling&lt;/a&gt; for the &lt;code class=&quot;highlighter-rouge&quot;&gt;fill-color&lt;/code&gt; of each bin. The height and color of each hexbin updates dynamically based on the complaint type selected.&lt;/p&gt;
&lt;div class=&quot;contain bleed-section space-bottom4&quot;&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00304/?embed&quot; class=&quot;fill-grey col12 row12&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;small center block space-bottom1&quot;&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00304&quot;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Have your own spatial data to visualize? Tweet us at &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;@Mapbox&lt;/a&gt; and show us what you’re working on!&lt;/p&gt;
</description>
<pubDate>Mon, 28 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Yunjie Li</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/3d-hexbin/</guid>
</item>
<item>
<title>OpenStreetMap Geoweek in Ayacucho</title>
<link>https://www.mapbox.com/blog/osm-geoweek-ayacucho/</link>
<description>&lt;p&gt;&lt;em&gt;English version below.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;El equipo de Mapbox estuvo ocupado durante la &lt;a href=&quot;https://www.mapbox.com/blog/geography-awareness-week-2016/&quot;&gt;Semana de Concientización Geográfica&lt;/a&gt;. Nuestra oficina de Ayacucho organizó un &lt;a href=&quot;http://osmgeoweek.org/event/AyacuchoMapathon&quot;&gt;mapatón&lt;/a&gt; el viernes pasado para crear conciencia sobre la geografía y continuar creciendo la comunidad OpenStreetMap local. Más de 15 estudiantes universitarios vinieron a nuestra oficina, todos deseosos de aprender sobre &lt;a href=&quot;http://osmgeoweek.org/event/AyacuchoMapathon&quot;&gt;OpenStreetMap&lt;/a&gt; y unirse a la comunidad.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5614/31022623212_ab69ecbd54_b_d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;El equipo de Ayacucho trabajando en la adición de relaciones de rutas.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Comenzamos la tarde con una introducción a OpenStreetMap, ayudando a los participantes a crear sus cuentas y aprender a usar el editor de &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Kendzi3D&quot;&gt;JOSM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Trabajamos en ediciones básicas, como calles, edificios y puntos de interés. Nosotros utilizamos el administrador de tareas &lt;a href=&quot;http://tasks.openstreetmap.us/project/34&quot;&gt;Tarea N° 34&lt;/a&gt; para agregar diferentes datos geográficos en Perú. Los participantes estuvieron particularmente interesados en ediciones de edificios 3D, por lo que les enseñamos a utilizar &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Kendzi3D&quot;&gt;plugins&lt;/a&gt; necesarios para edificios 3D y las etiquetas que se utilizan para añadir características de la pared, techos y superficie, entre otros. Todo el equipo de Ayacucho participó apoyando a los participantes con sus preguntas.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5458/30344569034_64712e15c8_c_d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Agregaron y modificaron más de 700 calles y más de 500 edificios en el Perú.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;El evento fue un gran éxito, y los estudiantes insistieron en que ofrezcamos otros talleres que se centren en edificios 3D pronto.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5532/31022619062_3e5ffe629b_c_d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;¡Manténgase atento a nuestro equipo para más eventos y oportunidades para aprender sobre OpenStreetMap! Si se dirige a &lt;a href=&quot;http://state.osmlatam.org/&quot;&gt;SOTM LATAM este fin semana&lt;/a&gt;, no se pierda &lt;a href=&quot;https://www.mapbox.com/events/sotm-latam/&quot;&gt;nuestros talleres&lt;/a&gt; sobre JOSM, la comunidad OpenStreetMap de Perú y las herramientas de mapeo de Mapbox.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;The Mapbox team was busy during &lt;a href=&quot;https://www.mapbox.com/blog/geography-awareness-week-2016/&quot;&gt;Geography Awareness Week&lt;/a&gt;. Our Ayacucho office organized a &lt;a href=&quot;http://osmgeoweek.org/event/AyacuchoMapathon&quot;&gt;mapathon&lt;/a&gt; last Friday to build awareness around geography and continue growing the local OpenStreetMap community. Over 15 university students came to our office, all eager to learn about &lt;a href=&quot;https://www.openstreetmap.org/#map=2/15.2/-7.5&quot;&gt;OpenStreetMap&lt;/a&gt; and join the community.&lt;/p&gt;
&lt;p&gt;We started the afternoon with an introduction to OpenStreetMap, helping the participants create accounts and learn how to use the &lt;a href=&quot;https://josm.openstreetmap.de/&quot;&gt;JOSM&lt;/a&gt; editor.&lt;/p&gt;
&lt;p&gt;We worked on basic edits, ranging from streets and buildings to interest points. We relied on the task administrator &lt;a href=&quot;http://tasks.openstreetmap.us/project/34&quot;&gt;Task N°34&lt;/a&gt; to add different geographic data in Peru. Participants were particularly interested in 3D building edits, so we showed them how to show the &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Kendzi3D&quot;&gt;3D plugins&lt;/a&gt; and labels OpenStreetMap requires to add walls, roofs and surfaces. Our entire team was in attendance, supporting all participants as they learned how to map.&lt;/p&gt;
&lt;p&gt;The event was a big success, with students insisting that we offer another workshops focusing on 3D buildings soon.&lt;/p&gt;
&lt;p&gt;Stay tuned to our team for more events and opportunities to learn about OpenStreetMap! If you’re heading to &lt;a href=&quot;http://state.osmlatam.org/&quot;&gt;SOTM LATAM later this week&lt;/a&gt; don’t miss &lt;a href=&quot;https://www.mapbox.com/events/sotm-latam/&quot;&gt;our workshops&lt;/a&gt; on JOSM, the Peru OpenStreetMap community and Mapbox’s mapping tools.&lt;/p&gt;
</description>
<pubDate>Tue, 22 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Edith Quispe</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/osm-geoweek-ayacucho/</guid>
</item>
<item>
<title>Run the Catalina Eco Marathon in 3D</title>
<link>https://www.mapbox.com/blog/run-the-catalina-eco-marathon-in-3d/</link>
<description>&lt;p&gt;This past Saturday, ambitious runners took on the &lt;a href=&quot;http://spectrumsportsevents.com/catalina-eco-marathon&quot;&gt;Catalina Eco Marathon&lt;/a&gt;, a race that loops around California’s Santa Catalina Island off the coast of Los Angeles. To visualize the mountainous path along the marathon route, I used Mapbox Satellite and &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-style-spec/#layers-fill-extrusion&quot;&gt;3D extrusions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The height of each extrusion represents the elevation. It’s a beautiful 3D profile over the entire landscape of the island.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5610/31063320896_e5cfb5002f_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To create the visual, I queried the elevation along the route using the Mapbox global elevation tileset, &lt;a href=&quot;https://www.mapbox.com/blog/terrain-rgb/&quot;&gt;Terrain-RGB&lt;/a&gt;. Then, I extruded each segment of the route with its elevation using data-driven styles and the &lt;code class=&quot;highlighter-rouge&quot;&gt;fill-extrusion-height&lt;/code&gt; property.&lt;/p&gt;
&lt;p&gt;With an elevation gain of about 2,300 feet, this is one tough marathon. The fastest runner completed the course in 03:20:31, at a pace of about 7 minutes 40 seconds per mile.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5701/31059051206_82ddf2cd80_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;What pace do you think you could complete it in? Set the pace, toggle the camera view, and take off from the finish line to find out! Zoom in to take in the sights along the way.&lt;/p&gt;
&lt;div class=&quot;contain bleed-section pad4y&quot;&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00308/?embed&quot; class=&quot;fill-grey col12 row12&quot;&gt;&lt;/iframe&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00308/&quot; class=&quot;small center block&quot; target=&quot;_blank&quot; rel=&quot;noreferrer&quot;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
</description>
<pubDate>Tue, 22 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Dana Sulit</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/run-the-catalina-eco-marathon-in-3d/</guid>
</item>
<item>
<title>Welcome Sarah!</title>
<link>https://www.mapbox.com/blog/welcome-sarah-kleinman/</link>
<description>&lt;p&gt;We’re excited to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/sarah-kleinman/&quot;&gt;Sarah Kleinman&lt;/a&gt; to Mapbox! As part of the labs team, Sarah works on building innovative applications with the Mapbox stack.&lt;/p&gt;
&lt;p&gt;Prior to joining Mapbox, Sarah worked as a front end developer at Capterra. Sarah is also active in Women Who Code DC, where she previously lead the weekly front end hack nights and help beginners learn the fundamentals of web development. Before transitioning into tech, Sarah was a staff assistant in the United States Senate.&lt;/p&gt;
&lt;p&gt;Sarah holds a bachelor’s degree in History from the University of Florida.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5465/31059510076_8b2f4984f7.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Welcome, Sarah!&lt;/p&gt;
</description>
<pubDate>Mon, 21 Nov 2016 11:00:00 -0500</pubDate>
<dc:creator>Molly Lloyd</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-sarah-kleinman/</guid>
</item>
<item>
<title>Riley Slitor joins Mapbox!</title>
<link>https://www.mapbox.com/blog/welcome-riley-slitor/</link>
<description>&lt;p&gt;We’re thrilled to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/riley-slitor&quot;&gt;Riley Slitor&lt;/a&gt; to the operations team at Mapbox! Riley joins us to support our team, working from our San Francisco office. She’ll do everything from supporting team members as they first join the company and get up to speed, helping them hit performance and career goals, building out and implementing smart tools to support the backend of HR, and overall help us scale our team and stay true to our values as we grow.&lt;/p&gt;
&lt;p&gt;Prior to joining Mapbox, Riley worked in global HR and recruitment for international development agencies including Population Services International, the State Department, and AECOM, as well as most recently building out the HR infrastructure for a small geospatial startup.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5623/30288433513_bcbc4c1a7b_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Welcome to the team, Riley!&lt;/p&gt;
</description>
<pubDate>Fri, 18 Nov 2016 10:00:00 -0500</pubDate>
<dc:creator>Bonnie Bogle</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-riley-slitor/</guid>
</item>
<item>
<title>Mobile runtime styling: get active!</title>
<link>https://www.mapbox.com/blog/mobile-runtime-styling-activity/</link>
<description>&lt;p&gt;From now on, your mobile maps can make subtle style changes in response to app conditions using runtime styling. This new feature is the focus of the next releases of our Android and iOS SDKs, available in beta today. All of the design flexibility available in our map design tools is now available at runtime, in code, using APIs that work just like the built-in frameworks that you are used to on mobile platforms.&lt;/p&gt;
&lt;p&gt;We’ve been playing with this feature building a fun app called Lush that styles the map in response to the phone’s motion sensor data. The world is depicted as a gray and cracking wasteland until the user gets active. Walking or running makes the map lush and green. When the user stops moving, the world begins to decay again.&lt;/p&gt;
&lt;div class=&quot;space-bottom4 space-top4&quot;&gt;
&lt;video autoplay=&quot;autoplay&quot; loop=&quot;loop&quot; style=&quot;display:block; width:100%;&quot;&gt;
&lt;source src=&quot;https://player.vimeo.com/external/192051436.sd.mp4?s=9094f04b116138467a3f5314cd1f507a30225bb8&amp;amp;profile_id=165&quot; /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Inactivity leads to a decaying map&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We’ve made use of two distinct map styles, along with a range of in-between values for colors, textures, and icon imagery. Runtime styling lets you adjust and update these smoothly in response to motion sensor data or other events happening on the phone or in the app.&lt;/p&gt;
&lt;div class=&quot;space-bottom4 space-top4&quot;&gt;
&lt;video autoplay=&quot;autoplay&quot; loop=&quot;loop&quot; style=&quot;display:block; width:100%; &quot;&gt;
&lt;source src=&quot;https://player.vimeo.com/external/192051437.sd.mp4?s=ed3284af1928cb4ff7e394f226e7d07fdb6bde27&amp;amp;profile_id=165&amp;amp;download=1&quot; /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Being active makes the map green again&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is an example of the power afforded by runtime styling combined with robust sensor APIs such as iOS’s Core Motion. Check out the &lt;a href=&quot;https://www.mapbox.com/bites/00312/Lush.zip&quot;&gt;code&lt;/a&gt; as an Xcode project that you can build for your own iOS device. You can choose between walking detection, running detection, and testing mode where you can just shake the device for a sampling of how it works.&lt;/p&gt;
&lt;p&gt;We’d love to see what you build with our &lt;a href=&quot;https://github.com/mapbox/mapbox-gl-native/releases/tag/android-v4.2.0-beta.5&quot;&gt;Android&lt;/a&gt; and &lt;a href=&quot;https://github.com/mapbox/mapbox-gl-native/releases/tag/ios-v3.4.0-beta.3&quot;&gt;iOS&lt;/a&gt; SDKs. Tweet us at &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;@mapbox&lt;/a&gt; and show us what you’ve got!&lt;/p&gt;
</description>
<pubDate>Fri, 18 Nov 2016 00:00:00 -0500</pubDate>
<dc:creator>Justin Miller</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/mobile-runtime-styling-activity/</guid>
</item>
<item>
<title>Welcome Brynne Morris</title>
<link>https://www.mapbox.com/blog/welcome-brynne-morris/</link>
<description>&lt;p&gt;We’re excited to welcome &lt;a href=&quot;https://www.mapbox.com/about/team/brynne-morris/&quot;&gt;Brynne Morris&lt;/a&gt; to Mapbox! Brynne will be based in DC working on the communications team to help us grow our social media and email strategies.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5666/30787181752_9e87c2d561.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Prior to joining Mapbox, Brynne ran communications and strategy for D.C. tech policy non-profits advocating for digital rights like net neutrality, encryption, and closing the digital divide.&lt;/p&gt;
&lt;p&gt;She holds a bachelor’s degree in Middle Eastern Politics from the University of North Carolina.&lt;/p&gt;
&lt;p&gt;Welcome, Brynne!&lt;/p&gt;
</description>
<pubDate>Wed, 16 Nov 2016 23:00:00 -0500</pubDate>
<dc:creator>Jen Yu</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-brynne-morris/</guid>
</item>
<item>
<title>Announcing iD v2</title>
<link>https://www.mapbox.com/blog/announcing-id-v2/</link>
<description>&lt;p&gt;iD v2 is now available on OpenStreetMap for editing! The web-based iD editor is designed to help create an even better, more current OpenStreetMap by lowering the threshold of entry to mapping with a straightforward, in-browser editing experience.&lt;/p&gt;
&lt;p&gt;This release has been 5 months in the making, and represents a major milestone in the development of iD. There have been 22 contributors
who added &lt;a href=&quot;https://github.com/openstreetmap/iD/blob/master/CHANGELOG.md#200&quot;&gt;more than 50 new features&lt;/a&gt; to iD v2.&lt;/p&gt;
&lt;p&gt;Some of our favorite features include:&lt;/p&gt;
&lt;h3 id=&quot;1-better-support-for-right-to-left-languages&quot;&gt;1. Better support for right-to-left languages&lt;/h3&gt;
&lt;p&gt;Over 400 million people in the world speak Arabic. Supporting a right-to-left user interface improves usability of iD for mappers in Arabic-speaking countries.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5808/31032517775_312db03bbd_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://github.com/mapmeld&quot;&gt;Nick Doiron&lt;/a&gt;, who added this feature.&lt;/p&gt;
&lt;h3 id=&quot;2-authenticated-calls-to-openstreetmap-servers&quot;&gt;2. Authenticated calls to OpenStreetMap servers&lt;/h3&gt;
&lt;p&gt;This allows iD to be used by hundreds of volunteers at a time, without triggering rate limit warnings from the OpenStreetMap servers. Just in time for
&lt;a href=&quot;https://www.mapbox.com/blog/geography-awareness-week-2016&quot;&gt;OpenStreetMap Geography Awareness Week&lt;/a&gt;
mapping parties!&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://github.com/zerebubuth&quot;&gt;Matt Amos&lt;/a&gt;, who was instrumental in helping us add this.&lt;/p&gt;
&lt;h3 id=&quot;3-mapillary-js-v2&quot;&gt;3. Mapillary-JS v2&lt;/h3&gt;
&lt;p&gt;In OpenStreetMap, “ground truth” observations are the most valuable source of information. iD’s built-in Mapillary viewer got an update, making it easier than ever for mappers to
&lt;a href=&quot;http://blog.mapillary.com/update/2016/11/15/100-million-photos-geotagged-connected-and-available-for-all.html&quot;&gt;access over 100 Million photos&lt;/a&gt;, and take a virtual walk around the map.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5778/31032260225_1349ca7587_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;4-new-modular-code-base-and-javascript-tools&quot;&gt;4. New modular code base and JavaScript tools&lt;/h3&gt;
&lt;p&gt;It doesn’t change how iD looks, but under the hood iD v2 represents a big change in how the source code is organized and bundled. iD now uses ES6 modules, &lt;a href=&quot;http://rollupjs.org/&quot;&gt;rollup.js&lt;/a&gt;, and &lt;a href=&quot;https://d3js.org/&quot;&gt;d3 v4&lt;/a&gt;, to keep iD up to date and running smoothly.&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&quot;https://github.com/tmcw&quot;&gt;Tom MacWright&lt;/a&gt;, who led this modernization effort and &lt;a href=&quot;https://www.openstreetmap.org/user/tmcw/diary/39351&quot;&gt;blogged about some of its benefits&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Head over to OpenStreetMap and &lt;a href=&quot;https://www.mapbox.com/blog/get-on-the-map/&quot;&gt;start editing today&lt;/a&gt;! You can make meaningful contributions with just a few minutes of training.&lt;/p&gt;
&lt;p&gt;You can also help OpenStreetMap by donating to the OpenStreetMap Foundation’s 2016 funding drive. Donate today and your gift will go even further because
&lt;a href=&quot;https://www.mapbox.com/blog/osm-foundation-donation/&quot;&gt;Mapbox is matching €10,000 of donations&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Check out &lt;a href=&quot;https://github.com/openstreetmap/iD&quot;&gt;iD on Github&lt;/a&gt; to contribute code, make suggestions, or report an issue.&lt;/p&gt;
&lt;p&gt;And follow &lt;a href=&quot;https://twitter.com/bhousel&quot;&gt;me&lt;/a&gt; on Twitter for the latest news about iD.&lt;/p&gt;
</description>
<pubDate>Wed, 16 Nov 2016 09:00:00 -0500</pubDate>
<dc:creator>Bryan Housel</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/announcing-id-v2/</guid>
</item>
<item>
<title>Migrating a project from Mapbox Editor</title>
<link>https://www.mapbox.com/blog/migrating-from-editor/</link>
<description>&lt;p&gt;Our team is working hard to build powerful mapping software for the future. In September, we &lt;a href=&quot;https://www.mapbox.com/blog/fall-cleaning/&quot;&gt;announced that Mapbox Editor would be deprecated&lt;/a&gt; and that projects will become read-only on January 31st, 2017. Fortunately, you can migrate the same maps you created in Mapbox Editor to our newer tools (&lt;a href=&quot;https://www.mapbox.com/studio/&quot;&gt;Mapbox Studio&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/&quot;&gt;Mapbox GL JS&lt;/a&gt;) for continued editing and maintenance.&lt;/p&gt;
&lt;p&gt;These newer tools work a bit differently than Mapbox Editor and may require writing some code. Transitioning a project from Mapbox Editor will require adjusting to a new workflow, but the resulting project will be more customizable than ever.&lt;/p&gt;
&lt;p&gt;This blog post contains steps for recreating the most common type of project users created in Mapbox Editor: a map showing several points of interest and popups that appear when the points are clicked. Studio and GL JS work a bit differently than Mapbox Editor and may require writing some code. Check out &lt;a href=&quot;https://www.mapbox.com/bites/00311/&quot;&gt;this example&lt;/a&gt;, and take a look at the additional guidance and documentation in the steps below.&lt;/p&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00311/&quot; width=&quot;100%&quot; height=&quot;375px&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;caption&quot;&gt;A Mapbox Editor project recreated using Studio and GL JS.&lt;/div&gt;
&lt;h3 id=&quot;1-download-your-mapbox-editor-data&quot;&gt;1) Download your Mapbox Editor data&lt;/h3&gt;
&lt;p&gt;To move over one of your Mapbox Editor projects, you can download the features from your project as a GeoJSON file from your Classic projects page under the &lt;a href=&quot;https://www.mapbox.com/studio/classic/projects/&quot;&gt;Mapbox Editor Projects tab&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;2-draw-and-edit-your-data&quot;&gt;2) Draw and edit your data&lt;/h3&gt;
&lt;p&gt;In the Mapbox Studio dataset editor, you can create a new dataset and upload your GeoJSON. After uploading, you can continue to draw and edit data features and their properties. Check out the &lt;a href=&quot;http://www.mapbox.com/help/getting-started-studio-datasets&quot;&gt;Get started with the Mapbox Studio dataset editor&lt;/a&gt; guide to see what you can do with the dataset editor. After you have finalized your data in the dataset editor, you can &lt;strong&gt;Save&lt;/strong&gt; and &lt;strong&gt;Export&lt;/strong&gt; your dataset as a tileset to be used in the Mapbox Studio style editor.&lt;/p&gt;
&lt;h3 id=&quot;3-add-your-data-to-a-map&quot;&gt;3) Add your data to a map&lt;/h3&gt;
&lt;p&gt;The Mapbox Studio style editor allows you to style your map, including any custom data you would like to add. On the &lt;a href=&quot;https://www.mapbox.com/studio/styles/&quot;&gt;Styles page&lt;/a&gt;, you can create a new style using one of the Mapbox default styles. Then, you can add a tileset as a new layer in any Mapbox Studio style. Check out our guide on how to &lt;a href=&quot;http://www.mapbox.com/help/getting-started-mapbox-studio-2&quot;&gt;Get started with the Mapbox Studio style editor&lt;/a&gt; to learn how to style your data, including adding symbols and changing the color of polygons and lines.&lt;/p&gt;
&lt;p&gt;Alternatively, you can also use the &lt;a href=&quot;https://www.mapbox.com/api-documentation/#datasets&quot;&gt;Datasets API&lt;/a&gt; to load your features on a map and style this new layer programmatically with Mapbox GL JS.&lt;/p&gt;
&lt;h3 id=&quot;4-add-interaction-including-popups&quot;&gt;4) Add interaction (including popups)&lt;/h3&gt;
&lt;p&gt;Unlike Mapbox Editor, you’ll need to use Mapbox GL JS to add popup functionality in code rather than through the interface. If you are new to writing code, you may want to explore a resource like &lt;a href=&quot;https://www.codecademy.com/&quot;&gt;Codecademy&lt;/a&gt; to learn more about how front-end development works before diving into Mapbox GL JS.&lt;/p&gt;
&lt;p&gt;The Mapbox GL JS code you write will be much different than the shareable embed code that was available with Mapbox Editor, and in most cases, you will not be able to copy and paste this in the same location that you used to have your embed code. Once you feel more comfortable with JavaScript, you can browse our &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/examples/&quot;&gt;Mapbox GL JS examples&lt;/a&gt; to implement different interactions, including &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/example/popup-on-click/&quot;&gt;adding a popup on a click&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;need-some-extra-help&quot;&gt;Need some extra help?&lt;/h2&gt;
&lt;p&gt;Mapbox Studio and Mapbox GL JS differ significantly from Mapbox Editor, but your future maps will become more flexible by distributing the workflow across multiple tools. If you need help migrating your Mapbox Editor projects, visit our &lt;a href=&quot;https://www.mapbox.com/developer-network/&quot;&gt;Developer Network&lt;/a&gt;, a community of developers fluent with Mapbox tools that are available for a wide variety of projects.&lt;/p&gt;
</description>
<pubDate>Tue, 15 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Nadia Barbosa</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/migrating-from-editor/</guid>
</item>
<item>
<title>Android 4.2 sneak peek</title>
<link>https://www.mapbox.com/blog/android-4.2.0-preview/</link>
<description>&lt;p&gt;We’re introducing runtime styling in the upcoming release of our Android SDK. Runtime styling gives developers a new level of customization and a toolbox to design experiences directly in their code. Now you can adjust the color of a map to the local time of day, change text labels based on localization settings on the device, or use a heat-map to change the color of buildings on the fly.&lt;/p&gt;
&lt;p&gt;While we’re polishing the final release, here’s a preview of some of the magic available in our &lt;a href=&quot;https://www.mapbox.com/android-sdk/&quot;&gt;current beta&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;indoor-maps&quot;&gt;Indoor maps&lt;/h3&gt;
&lt;p&gt;Runtime styling allows you to add, remove, or modify map layers on the fly, offering new ways to present data on a map. For this demo, we mapped out the interior of The White House, saved in a GeoJSON file. Here’s how you add the data as a source to the map and create a layer from the data:&lt;/p&gt;
&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// Load in the GeoJSON file and add as a new source.&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;indoorBuildingSource&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GeoJsonSource&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;indoor-building&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;GeoJSON&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;here&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mapboxMap&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;addSource&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;indoorBuildingSource&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;FillLayer&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;indoorBuildingLayer&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;FillLayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;indoor-building-fill&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot;indoor-building&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;withProperties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fillColor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;parseColor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#eeeeee&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)),&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// Function.zoom is used here to fade out the indoor layer if zoom level is beyond 16. Only&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// necessary to show the indoor map at high zoom levels.&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fillOpacity&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Function&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;zoom&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.8f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fillOpacity&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)),&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;16.5f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fillOpacity&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.5f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)),&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;fillOpacity&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;f&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;addLayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;indoorBuildingLayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
Now add different data sources for each floor level to modify the map whenever a user selects a different floor:&lt;/p&gt;
&lt;div class=&quot;space-bottom4 space-top4&quot;&gt;
&lt;video autoplay=&quot;autoplay&quot; loop=&quot;loop&quot; style=&quot;display:block; width:100%; max-width:833px;&quot;&gt;
&lt;source src=&quot;https://player.vimeo.com/external/191626714.sd.mp4?s=c7138b92c3ee1c78ac24f1e165cb4d7cae1ee936&amp;amp;profile_id=165&quot; /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;h3 id=&quot;highlight-map-features&quot;&gt;Highlight map features&lt;/h3&gt;
&lt;p&gt;This example lets the user explore parks, hotels and attractions in Los Angeles.
Runtime styling allows you to customize the look of existing layers in the map style. To keep the map neat and informative, users simply toggle the layers they are interested in. The pulsing animation of a layer being toggled on or off is the result of using a &lt;code class=&quot;highlighter-rouge&quot;&gt;ValueAnimator&lt;/code&gt;, typically used in Android:&lt;/p&gt;
&lt;div class=&quot;language-java highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;FillLayer&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;parks&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;FillLayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mapboxMap&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getLayer&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;parks&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ValueAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;ofObject&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ArgbEvaluator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(),&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;Color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;parseColor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#7ac79c&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Brighter shade&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;Color&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;parseColor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#419a68&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// Darker shade&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;setDuration&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;setRepeatCount&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ValueAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;INFINITE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;setRepeatMode&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ValueAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;REVERSE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;addUpdateListener&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ValueAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;AnimatorUpdateListener&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nd&quot;&gt;@Override&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;onAnimationUpdate&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ValueAnimator&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;animator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parks&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;setProperties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;fillColor&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;animator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getAnimatedValue&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;});&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;parkColorAnimator&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;space-bottom4 space-top4&quot;&gt;
&lt;video autoplay=&quot;autoplay&quot; loop=&quot;loop&quot; style=&quot;display:block; width:100%; max-width:833px;&quot;&gt;
&lt;source src=&quot;https://player.vimeo.com/external/191626715.sd.mp4?s=4812ef7675b01fc29ff4c8029ba0a52497aaf1d9&amp;amp;profile_id=165&quot; /&gt;
&lt;/video&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
Next to runtime styling, the upcoming Android SDK release lets you query the map to get features, cluster GeoJSON markers, and improves map performance and stability.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ready to put runtime styling to the test? Get started by downloading &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.mapbox.mapboxandroiddemo&quot;&gt;our demo application&lt;/a&gt; or update your Mapbox dependency to&lt;/em&gt; &lt;code class=&quot;highlighter-rouge&quot;&gt;4.2.0-beta.5&lt;/code&gt;.&lt;/p&gt;
</description>
<pubDate>Tue, 15 Nov 2016 00:00:00 -0500</pubDate>
<dc:creator>Cameron Mace</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/android-4.2.0-preview/</guid>
</item>
<item>
<title>PubNub API BLOCKS launches with Mapbox</title>
<link>https://www.mapbox.com/blog/pubnub/</link>
<description>&lt;p&gt;PubNub, known for its low-latency secure messaging on every device, recently made &lt;a href=&quot;https://www.pubnub.com/blog/2016-11-02-realtime-geocoding-and-mapping-with-mapbox-pubnub-blocks-and-angularjs/&quot;&gt;Mapbox tools available on its API BLOCKS&lt;/a&gt;. PubNub powers thousands of realtime apps around the world, from start-ups to globally recognized brands. Its BLOCKS makes the network programmable, executing application logic on data as it passes over the network.&lt;/p&gt;
&lt;p&gt;Check out our &lt;a href=&quot;https://www.pubnub.com/blocks-catalog/mapbox-geocoding/&quot;&gt;geocoding&lt;/a&gt;, &lt;a href=&quot;https://www.pubnub.com/blocks-catalog/mapbox-directions/&quot;&gt;directions&lt;/a&gt;, and &lt;a href=&quot;https://www.pubnub.com/blocks-catalog/static-map/&quot;&gt;static map&lt;/a&gt; APIs so you can build real-time, performant applications for people to look up addresses, get directions, and show their routes on a map – or maybe even for &lt;a href=&quot;https://www.pubnub.com/developers/eon/map/flight/&quot;&gt;tracking real-time flights&lt;/a&gt; – into your PubNub projects.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/rCPcYWb.gif&quot; alt=&quot;gif&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Check out PubNub’s &lt;a href=&quot;https://www.pubnub.com/blocks-catalog/&quot;&gt;API BLOCKS&lt;/a&gt; to see what’s new. Or explore other examples of how we power &lt;a href=&quot;https://www.mapbox.com/industries/logistics/&quot;&gt;logistics applications&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/studio/signup/&quot;&gt;sign up&lt;/a&gt; for a Mapbox account to see our tools for yourself.&lt;/p&gt;
&lt;p&gt;PS - Build with PubNub and Mapbox at the &lt;a href=&quot;https://techcrunch.com/event-info/disrupt-london-2016/disrupt-london-hackathon-2016/&quot;&gt;TechCrunch Disrupt London Hackathon&lt;/a&gt;! PubNub will be challenging hackers to build a Marauder’s Map, with dynamic user location and the ability to turn a user’s visibility on or off. Tap into the &lt;a href=&quot;https://www.pubnub.com/blocks-catalog/&quot;&gt;PubNub BLOCKS integration with Mapbox&lt;/a&gt; for realtime geolaction tracking and Mapbox’s extensive vector map infrastructure.&lt;/p&gt;
</description>
<pubDate>Mon, 14 Nov 2016 00:00:00 -0500</pubDate>
<dc:creator>Angelina Calderon</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/pubnub/</guid>
</item>
<item>
<title>Happy Geography Awareness Week!</title>
<link>https://www.mapbox.com/blog/geography-awareness-week-2016/</link>
<description>&lt;p&gt;This week we’re joining in celebrations across the globe for &lt;a href=&quot;http://osmgeoweek.org/index.html&quot;&gt;OpenStreetMap’s Geography Awareness Week&lt;/a&gt;, promoting geography, cartography, and open mapping!&lt;/p&gt;
&lt;p&gt;We’re hosting several events throughout the week - specifically geared towards encouraging you to get mapping on OpenStreetMap! Join us at our following events:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://osmgeoweek.org/event/AyacuchoMapathon&quot;&gt;Ayacucho Mapathon&lt;/a&gt;: Join our Ayacucho, Peru office in learning how to get started in OpenStreetMap, making edits, tagging turn restrictions, and more, on Friday, November 18, 14:00-18:00.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.mapbox.com/events/mapillary-party/&quot;&gt;Bangalore Mapillary party&lt;/a&gt;: Join us at Mapbox Bengaluru Thursday, November 17 at 17:00 for a hands-on workshop on using &lt;a href=&quot;https://www.mapillary.com/&quot;&gt;Mapillary&lt;/a&gt; for crowd-sourced street level photos to improve OpenStreetMap.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We encourage you to find an OpenStreetMap &lt;a href=&quot;http://osmgeoweek.org/events/&quot;&gt;event near you&lt;/a&gt; and join in the conversation with #osmgeoweek. (No events near you? Then &lt;a href=&quot;http://wiki.openstreetmap.org/wiki/Beginners%27_guide&quot;&gt;learn how to get mapping&lt;/a&gt; on your own!)&lt;/p&gt;
&lt;p&gt;We’ll also be at &lt;a href=&quot;https://www.mapbox.com/events/stanford-gis-day-2016/&quot;&gt;Stanford’s GIS Day&lt;/a&gt; on November 15 and 16. If you’re on campus, make sure to join &lt;a href=&quot;https://www.mapbox.com/about/team/morgan-herlocker/&quot;&gt;Morgan&lt;/a&gt;’s talk on how we’re building our auto navigation and &lt;a href=&quot;https://www.mapbox.com/about/team/lyzi-diamond/&quot;&gt;Lyzi&lt;/a&gt;’s workshop on getting started using Mapbox tools.&lt;/p&gt;
&lt;p&gt;Happy mapping!&lt;/p&gt;
</description>
<pubDate>Sun, 13 Nov 2016 04:00:00 -0500</pubDate>
<dc:creator>Natalie Pitcher</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/geography-awareness-week-2016/</guid>
</item>
<item>
<title>Support the OpenStreetMap movement</title>
<link>https://www.mapbox.com/blog/osm-foundation-donation/</link>
<description>&lt;p&gt;Our friends at the OpenStreetMap Foundation, the largest open geographic database in the world, are asking for help to support their critical work. Let’s get OpenStreetMap to its €70,000 goal! &lt;strong&gt;Mapbox will match the next ‎€10,000 in contributions.&lt;/strong&gt; Visit the &lt;a href=&quot;https://donate.openstreetmap.org/&quot;&gt;fundraising site&lt;/a&gt; to contribute. Our donations will help cover OpenStreetMap’s core operational expenses.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://donate.openstreetmap.org/&quot;&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5473/30210075434_115b9fd662_o.png&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We are proud to support this funding drive as part of our commitment to the OpenStreetMap Foundation. OpenStreetMap is a project founded on the belief that when data is open then everyone can work together to build the map. More than two million volunteers from across the globe contribute to the project, providing a free and open data set for everyone. Whether you’re a corporation, a grassroots health NGO, or a mapping company like us, you can depend on OpenStreetMap for exceptional data.&lt;/p&gt;
&lt;p&gt;Be a part of this large and growing movement. &lt;a href=&quot;https://donate.openstreetmap.org/&quot;&gt;Donate to the funding drive&lt;/a&gt;, &lt;a href=&quot;https://www.mapbox.com/help/osm-and-mapbox/&quot;&gt;learn how to contribute data to OpenStreetMap&lt;/a&gt;, and share the fundraising page on Twitter!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mapbox.com/ten-years-openstreetmap/#-0.175781/14.264383/2&quot;&gt;&lt;img src=&quot;https://i.imgur.com/eYNEFDp.gif&quot; alt=&quot;gif&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;10 years of OpenStreetMap edits.&lt;/em&gt;&lt;/p&gt;
</description>
<pubDate>Fri, 11 Nov 2016 11:45:00 -0500</pubDate>
<dc:creator>Mikel Maron</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/osm-foundation-donation/</guid>
</item>
<item>
<title>Vincent Sarago joins Mapbox</title>
<link>https://www.mapbox.com/blog/welcome-vincent-sarago/</link>
<description>&lt;p&gt;We’re happy to announce that &lt;a href=&quot;https://www.mapbox.com/about/team/vincent-sarago/&quot;&gt;Vincent Sarago&lt;/a&gt; is joining Mapbox. Vincent is a developer with extensive experience in remote sensing and building compelling, interactive experiences.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5323/30843978866_c0fc0197de_o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Vincent will be using his geospatial skills to help our satellite team build beautiful basemaps and take both our internal and external imagery tools to the next level.&lt;/p&gt;
&lt;p&gt;You may recognize Vincent’s work at &lt;a href=&quot;https://remotepixel.ca/&quot;&gt;RemotePixel&lt;/a&gt;, a site dedicated to opening up remote sensing tools and principles to a wide audience. Before that, Vincent received a master’s degree in geology from Nantes University.&lt;/p&gt;
&lt;p&gt;Welcome, Vincent!&lt;/p&gt;
</description>
<pubDate>Thu, 10 Nov 2016 07:30:00 -0500</pubDate>
<dc:creator>Jacques Tardie</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-vincent-sarago/</guid>
</item>
<item>
<title>Let&#39;s talk maps for travel at Phocuswright</title>
<link>https://www.mapbox.com/blog/phocuswright-travel/</link>
<description>&lt;p&gt;We’re headed to &lt;a href=&quot;https://www.mapbox.com/events/phocuswright-2016/&quot;&gt;Phocuswright&lt;/a&gt; in Los Angeles on Nov 14-17 to talk travel and tech, and &lt;a href=&quot;https://www.mapbox.com/about/team/sean-heffernan/&quot;&gt;Sean&lt;/a&gt;, &lt;a href=&quot;https://www.mapbox.com/about/team/noemi-walzebuck/&quot;&gt;Noemi&lt;/a&gt; and I would love to meet you!&lt;/p&gt;
&lt;p&gt;We’ll be demoing what we’ve built for mobile apps, booking sites, and online travel agencies. Whether you’re customizing your travel app, visualizing millions of rows of hotel booking data, or tracking airline flights in real time, our location platform will help you build what you need.&lt;/p&gt;
&lt;p&gt;Keep reading for a preview of what we’ll be sharing next week at our booth (#70). Can’t wait? Email Noemi at &lt;a href=&quot;mailto:noemi@mapbox.com&quot;&gt;noemi@mapbox.com&lt;/a&gt; to set up a meeting time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Take maps anywhere&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No cell service? No problem. Our Mapbox mobile SDKs ship with offline maps, maintaining your app’s performance while offline. With our pre-cached map styles, tiles, and other map assets, your users can still use your app’s maps even when they experience connectivity issues and bad cell service traveling the world.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5499/30901877095_01dc3226ec_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fast mobile maps&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our maps render quickly, powering fast searches and increasing conversions. We’re able to serve those tiles so fast because our vector tiles are 15 to 20 times smaller than competing SDKs, reducing data transfer and data storage while increasing render speed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solve the international roaming problem&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Our global mapping infrastructure is powered by a network of Amazon Web Services edge servers, including 20 servers in China, which are set up to reduce latency to users around the world.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Runtime styling changes maps on the fly&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We’re bringing the style customization power of Mapbox Studio to mobile with runtime styling, which allows you to edit, add, and remove mobile map features on the fly. In the map below, runtime styling powers a dynamic foot-traffic map showing changing patterns in real-time:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5829/30787947682_64d8744af5_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want to see this in action?&lt;/strong&gt;
Check out what &lt;a href=&quot;https://www.mapbox.com/industries/travel/&quot;&gt;our travel customers&lt;/a&gt; like Lonely Planet and National Geographic have already built with our mapping platform.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5571/30267962373_84490f7fed_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The Lonely Planet Guides app is packed with tips and advice from the experts to help you get to the heart of your destination. Filter and bookmark places or browse the custom map online and offline, all on top of the Mapbox iOS SDK.&lt;/p&gt;
&lt;p&gt;National Geographic’s City Guides app helps travelers experience four of the world’s most iconic cities: London, Paris, Rome, and New York. Also built with the Mapbox SDK for iOS, City Guides has features for curated point-by-point walks, customizable itineraries, and contextual photo galleries.&lt;/p&gt;
&lt;p&gt;See you in Los Angeles!&lt;/p&gt;
</description>
<pubDate>Thu, 10 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Natalie Pitcher</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/phocuswright-travel/</guid>
</item>
<item>
<title>The Datasets API is now available to all!</title>
<link>https://www.mapbox.com/blog/dataset-api-public-launch/</link>
<description>&lt;p&gt;We just launched the &lt;a href=&quot;https://www.mapbox.com/api-documentation/#datasets&quot;&gt;Datasets API&lt;/a&gt;, a new way to interact with custom geo data. Speaking raw GeoJSON, the Datasets API provides an endpoint for every single feature. This fine-grained control allows you to create tuned and frequently updating geo applications. From &lt;a href=&quot;https://www.mapbox.com/blog/mapbox-unity-sdk/&quot;&gt;location-based video games&lt;/a&gt; to &lt;a href=&quot;https://www.mapbox.com/analysis/&quot;&gt;analytical pipelines&lt;/a&gt; to &lt;a href=&quot;https://www.mapbox.com/blog/wildfire-datasets/&quot;&gt;live updating maps&lt;/a&gt;, the Datasets API opens up endless possibilities for you to help your users understand the world around them.&lt;/p&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00288/?nointro=true&amp;amp;embed=true&quot; style=&quot;width: 100%; height: 500px;&quot; class=&quot;space-bottom&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;caption&quot;&gt;A live updating map of wild fires in the United States.&lt;/div&gt;
&lt;p&gt;The core of the Datasets API is the &lt;a href=&quot;https://www.mapbox.com/api-documentation/#the-feature-object&quot;&gt;GeoJSON feature&lt;/a&gt;. You can create, read, update, and delete each feature on its own. This means you can make only the changes that you need to when updating your data. As feature ids can be any string, the Datasets API can quickly fit into any workflow as a hosted key-value store. This is great for apps that need serverless data storage.&lt;/p&gt;
&lt;p&gt;In contrast to the Uploads API, which optimizes and strips uploaded data to make small, fast vector tiles, the Datasets API stores features up to six decimal points of precision. By keeping data accurate, the Datasets API sets itself up to be a great storage platform for geospatial analysis. And because it speaks GeoJSON, it’s primed and ready to work with &lt;a href=&quot;http://turfjs.org/&quot;&gt;Turf&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To help you get started using the Datasets API, we’ve added support to our SDKs.&lt;/p&gt;
&lt;p&gt;Creating a dataset with the &lt;a href=&quot;https://github.com/mapbox/mapbox-sdk-js/&quot;&gt;JavaScript SDK&lt;/a&gt; looks like:&lt;/p&gt;
&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;MapboxClient&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;mapbox&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;client&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;MapboxClient&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;ACCESSTOKEN&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;createDataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;foo&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;description&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;bar&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;dataset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// =&amp;gt; &#39;dataset-id&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;Here is how to add or update a feature in a dataset:&lt;/p&gt;
&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;point&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;null-island&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Feature&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;properties&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{},&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;coordinates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;na&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Point&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;insertFeature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;point&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;dataset-id&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// =&amp;gt; &#39;null-island&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;And here is how you can read and delete a feature:&lt;/p&gt;
&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;readFeature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;null-island&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;dataset-id&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;null island is at: &#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;feature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;coordinates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;client&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;deleteFeature&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;null-island&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;dataset-id&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;err&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;null island has been deleted&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
We have much more planned for the Datasets API and will be talking about it more in the coming weeks. Until then check out the &lt;a href=&quot;https://www.mapbox.com/api-documentation/#datasets&quot;&gt;Datasets API docs&lt;/a&gt; and share your creations with us via &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Thu, 10 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Matthew Chase Whittemore</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/dataset-api-public-launch/</guid>
</item>
<item>
<title>Live election results on The Washington Post</title>
<link>https://www.mapbox.com/blog/washpo-election-2016/</link>
<description>&lt;p&gt;&lt;em&gt;As election results roll in tonight, we’ll be watching the action with &lt;a href=&quot;https://www.washingtonpost.com/2016-election-results/us-presidential-race/&quot;&gt;The Washington Post&lt;/a&gt;. Its site will have up-to-the-second data on the Presidential, Senate, House, and Governor races, with results available state to state, down to the county level. Our friends at &lt;a href=&quot;https://developmentseed.org/&quot;&gt;Development Seed&lt;/a&gt; built the live maps for The Washington Post. I caught up with &lt;a href=&quot;https://developmentseed.org/team/derek-lieu/&quot;&gt;Derek Lieu&lt;/a&gt; and &lt;a href=&quot;https://developmentseed.org/team/anand-thaaker/&quot;&gt;Anand Thakker&lt;/a&gt; from Development Seed to chat about their experience building live election maps for a major news site.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/u4qyH0x.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I remember when we worked on live results maps during the 2012 elections. The hardest part was just the velocity of the data and the millions of people who wanted the most recent information all night long. What are the challenges you encountered building these maps?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Derek:&lt;/strong&gt; It’s a really big data challenge. The &lt;em&gt;Associated Press (AP)&lt;/em&gt; is providing a constant stream of vote counts for thousands of candidates, which spans hundreds of races over thousands of counties. We are hitting &lt;em&gt;AP’s&lt;/em&gt; data API every 7 seconds. We need to ingest that data, immediately repackage it, and get it down into a million browsers in a format where people can understand what’s going on. The first thing we did was build a really robust infrastructure for ingesting and serving the data. Then we added a light viewer on the front end that quickly translates that data into maps. Our team uses vector tiles on the front end and feeds data right into those tiles. That way no one is pulling heavy map tiles off of a server. We can push extremely light data updates, and it’s immediately rendered on the client using &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/&quot;&gt;Mapbox GL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So you are updating the data in the vector tiles in real time?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anand:&lt;/strong&gt; Exactly. As data arrives from the &lt;em&gt;AP&lt;/em&gt;, we just send users what’s new. Changes are merged into the vector tile and Mapbox GL immediately re-renders the map with the new data. This allows us to update the map in real time. Because Mapbox GL is open source, we were able to work with &lt;a href=&quot;https://www.mapbox.com/about/team/lucas-wojciechowski/&quot;&gt;Lucas&lt;/a&gt; and the Mapbox GL team to build in the hooks to handle live data updates and data-based rendering. These updates are immediately available to anyone viewing the maps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I noticed that you aren’t using the default &lt;a href=&quot;https://en.wikipedia.org/wiki/Web_Mercator&quot;&gt;Web Mercator&lt;/a&gt; projection. What did you use?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anand:&lt;/strong&gt; Yeah, &lt;em&gt;The Washington Post&lt;/em&gt; uses &lt;a href=&quot;https://en.wikipedia.org/wiki/Albers_projection&quot;&gt;Albers projection&lt;/a&gt; for all its maps. It is critical for them to project into Albers. This was a deal breaker in selecting the mapping stack. We took some inspiration from AJ Ashton’s &lt;a href=&quot;https://github.com/ajashton/polarmap&quot;&gt;Polar projection&lt;/a&gt; and are using a similar technique to re-project into Albers on the fly. After the election, we’ll release our Albers projection code as an open repository. We hope it’ll be useful to others, especially U.S. media outlets.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I love how easy it is to see what’s going on at a glance but I can also really dig in and geek out on the data.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Derek:&lt;/strong&gt; Yeah, we spent a lot of time trying to get the interface just right. We were fortunate to have worked with &lt;em&gt;The Washington Post&lt;/em&gt; through &lt;a href=&quot;https://developmentseed.org/blog/2016/03/15/tracking-live-events/&quot;&gt;the primaries&lt;/a&gt;, and that gave us 24 election nights to test, learn, and iterate. We developed a simple way to keep users alerted to what’s new and interesting. Because we don’t know what the results will be, we built flexible analysis tools that &lt;em&gt;The Post&lt;/em&gt; can adapt and deploy throughout the evening of and day after to provide context and insight.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Once the polls close, track the results live on &lt;a href=&quot;https://www.washingtonpost.com/2016-election-results/us-presidential-race/&quot;&gt;The Washington Post&lt;/a&gt; and reach out to &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;Mapbox&lt;/a&gt; or &lt;a href=&quot;https://twitter.com/developmentseed&quot;&gt;Development Seed&lt;/a&gt; on Twitter to talk!&lt;/em&gt;&lt;/p&gt;
</description>
<pubDate>Tue, 08 Nov 2016 09:00:00 -0500</pubDate>
<dc:creator>Alex Barth</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/washpo-election-2016/</guid>
</item>
<item>
<title>Howdy, Tableau Conference!</title>
<link>https://www.mapbox.com/blog/tableau-conference-2016/</link>
<description>&lt;p&gt;We’re in Austin, TX this week to show new 3D maps and data in Tableau.&lt;/p&gt;
&lt;p&gt;Tableau already &lt;a href=&quot;https://www.mapbox.com/tableau/&quot;&gt;integrates Mapbox natively&lt;/a&gt; for powerful, customizable maps in your viz. Mapbox can offer even more for your viz with &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/api/&quot;&gt;Mapbox GL JS&lt;/a&gt;, an open-source javascript library we created to render vector maps. Mapbox GL JS unlocks big geo data with vector tiles, point clustering, linestring and polygon rendering, zoom-level style changes, and 3D.&lt;/p&gt;
&lt;p&gt;The Tableau JavaScript API works with Mapbox GL JS to filter, highlight, zoom, and pass data from your Tableau dashboard to your map. You can even drill down to street-level to see 3D-building detail.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This visualization shows pedestrian and bicyclist incidents in New York City, embedding a Mapbox vector map with 3D buildings in a Tableau dashboard.&lt;/em&gt;&lt;/p&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00309/?embed&quot; class=&quot;col12 row10 fill-grey space-bottom1&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;small quiet center space-bottom4&quot;&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00309/&quot; target=&quot;_blank&quot;&gt;View full-screen version&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;The integration between Mapbox GL JS and Tableau takes only a few lines of code:&lt;/p&gt;
&lt;div class=&quot;language-javascript highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;viz&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;tableau&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;TableauEventName&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;MARKS_SELECTION&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;onMarksSelection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;onMarksSelection&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;marks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;markName&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;marks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getPairs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;fieldName&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;markValue&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;marks&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;getPairs&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;value&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// Sync the selected Tableau mark with the Mapbox GL JS map&lt;/span&gt;
&lt;span class=&quot;nx&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;setFilter&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;my-layer&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;==&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;markName&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;markValue&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5461/30809770156_29e8bb2092_b.jpg&quot; alt=&quot;Mapbox GL JS and Tableau JS Integration&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Want to learn about the new mapping capabilities in Tableau? &lt;a href=&quot;https://www.mapbox.com/events/tableau-conf-2016/&quot;&gt;Check out our events page&lt;/a&gt; for details on where and when to find &lt;a href=&quot;https://twitter.com/ryanbaumann&quot;&gt;me&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/mtirwin&quot;&gt;Matt&lt;/a&gt;, or &lt;a href=&quot;https://twitter.com/maximsirenko&quot;&gt;Max&lt;/a&gt;; and come by these Mapbox sessions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tuesday, November 8, 12:15-1:15pm CT: &lt;a href=&quot;https://tc16.tableau.com/learn/sessions/3541&quot;&gt;Mapbox + Tableau and the Perfect Background Map&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tuesday, November 8, 1:45-2:45pm CT: &lt;a href=&quot;https://tc16.tableau.com/learn/sessions/3290&quot;&gt;Eradicating Malaria in Zambia by 2020&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wednesday, November 9, 3:15-4:15pm CT: &lt;a href=&quot;https://tc16.tableau.com/learn/sessions/8402&quot;&gt;Mapbox + Tableau and the Perfect Background Map&lt;/a&gt; (repeated)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’ll also be at &lt;a href=&quot;http://www.handlebaraustin.com/&quot;&gt;Handlebar&lt;/a&gt; on Tuesday night starting at 7:00pm CT to watch the election results roll in. Swing by, but &lt;em&gt;only after you’ve voted!&lt;/em&gt; First round’s on Mapbox.&lt;/p&gt;
</description>
<pubDate>Mon, 07 Nov 2016 07:00:00 -0500</pubDate>
<dc:creator>Ryan Baumann</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/tableau-conference-2016/</guid>
</item>
<item>
<title>Find your polling place with Mapbox + Foursquare</title>
<link>https://www.mapbox.com/blog/find-your-polling-place/</link>
<description>&lt;p&gt;We teamed up with the &lt;a href=&quot;https://votinginfoproject.org/&quot;&gt;Voting Information Project&lt;/a&gt; (VIP) and &lt;a href=&quot;https://foursquare.com/&quot;&gt;Foursquare&lt;/a&gt; to build an app that helps voters find their polling place and popular spots to eat, drink, or grab a coffee nearby.&lt;/p&gt;
&lt;p&gt;We used the VIP &lt;a href=&quot;https://developers.google.com/civic-information/&quot;&gt;Civic Information API&lt;/a&gt; for polling place data, the Mapbox Geocoding API to add the polling place location and recommended post-voting destinations to the map, and the Mapbox Directions API to route users to those locations.&lt;/p&gt;
&lt;div class=&quot;contain bleed-section pad4y&quot;&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00303/?embed&quot; class=&quot;fill-grey col12&quot; height=&quot;600px&quot;&gt;&lt;/iframe&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00303/&quot; class=&quot;small center block&quot; target=&quot;_blank&quot; rel=&quot;noreferrer&quot;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Happy Voting! 🇺🇸🗳✅&lt;/p&gt;
</description>
<pubDate>Wed, 02 Nov 2016 08:00:00 -0400</pubDate>
<dc:creator>Molly Lloyd</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/find-your-polling-place/</guid>
</item>
<item>
<title>Announcing the Mapbox Unity SDK</title>
<link>https://www.mapbox.com/blog/mapbox-unity-sdk/</link>
<description>&lt;style&gt;
.unity-illustration-container {
height: 560px;
pointer-events: none;
}
.unity-illustration {
bottom: -10px;
}
#knight-head {
animation: upanddown 6s infinite ease-in-out;
}
#knight-forearm {
transform-origin: bottom right;
animation: rotatearm 10s infinite ease-in-out;
}
#astro-arm {
transform-origin: top left;
animation: rotatearm 7s infinite ease-in-out;
}
#widgets {
animation: widgets 4s infinite ease-in-out 0s;
}
#princess-head {
animation: upanddown 6s infinite ease-in-out .5s;
}
#princess-shoulders {
animation: upanddown 6s infinite ease-in-out 0s;
}
#wizard-head {
animation: upanddown 6s infinite ease-in-out;
}
#wizard-staff {
transform-origin: 0% 100%;
animation: rotatestaff 6s infinite ease-in-out;
}
#wizard-scarf1 {
transform-origin: top left;
-moz-transform-origin: 50% 0%;
animation: rotate 4s infinite ease-in-out .5s;
}
#wizard-scarf2 {
transform-origin: top left;
-moz-transform-origin: 60% 0%;
animation: rotate 4s infinite ease-in-out;
}
@media only screen and (max-width: 640px) {
.unity-illustration {
width: 75% !important;
}
#princess { opacity: 0; }
}
@keyframes upanddown {
0% { transform: translateY( -2px);}
10% { transform: translateY( -2px);}
45% { transform: translateY( 2px);}
55% { transform: translateY( 2px);}
90% { transform: translateY( -2px);}
100% { transform: translateY( -2px);}
}
@keyframes widgets {
0% { transform: translateY( 0px);}
50% { transform: translateY( 10px);}
100% { transform: translateY( 0px);}
}
@keyframes rotatestaff {
0% { transform: rotate( -2deg); }
50% { transform: rotate( 2deg);}
100% { transform: rotate( -2deg);}
}
@keyframes rotatearm {
0% { transform: rotate( 1deg); -moz-transform: rotate( 0deg); }
40% { transform: rotate( 0deg); -moz-transform: rotate( 0deg); }
50% { transform: rotate( -3deg); -moz-transform: rotate( 0deg); }
90% { transform: rotate( -4deg); -moz-transform: rotate( 0deg); }
100% { transform: rotate( 1deg); -moz-transform: rotate( 0deg); }
}
@keyframes rotate {
0% { transform: translateX( 0px) rotate( 0deg); -moz-transform: rotate( 0deg); }
50% { transform: translateX( 4px) rotate( 5deg); -moz-transform: rotate( 1deg); }
100% { transform: translateX( 0px) rotate( 0deg); -moz-transform: rotate( 0deg); }
}
&lt;/style&gt;
&lt;p&gt;Today we are announcing the Mapbox Unity SDK. The new SDK gives developers direct access to Mapbox from within &lt;a href=&quot;https://unity3d.com/&quot;&gt;Unity&lt;/a&gt;, bringing the full spectrum of Mapbox API’s to location-based games, VR, and AR. All of this is available across platforms: mobile, game consoles, and web browsers.&lt;/p&gt;
&lt;p&gt;The SDK exposes reliable library functions to develop Unity applications tapping into Mapbox &lt;a href=&quot;https://www.mapbox.com/api-documentation/#maps&quot;&gt;maps&lt;/a&gt;, &lt;a href=&quot;https://www.mapbox.com/api-documentation/#geocoding&quot;&gt;geocoding&lt;/a&gt;, and &lt;a href=&quot;https://www.mapbox.com/api-documentation/#directions&quot;&gt;directions&lt;/a&gt; API’s. This makes global map layers for streets, terrain, satellite, points of interest, addresses, places, routing, traffic, and more instantly available in Unity. For example, stream Mapbox Streets map tiles to generate a city-based environment. Keep it flat, or go into the 3rd dimension with building heights:&lt;/p&gt;
&lt;div class=&quot;pin-top clip bleed-section unity-illustration-container&quot;&gt;
&lt;div class=&quot;col5 pin-bottomleft unity-illustration unity-illustration-left&quot;&gt;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --&gt;
&lt;svg xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:cc=&quot;http://creativecommons.org/ns#&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:svg=&quot;http://www.w3.org/2000/svg&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:sodipodi=&quot;http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd&quot; xmlns:inkscape=&quot;http://www.inkscape.org/namespaces/inkscape&quot; version=&quot;1.1&quot; id=&quot;svg2&quot; inkscape:version=&quot;0.91 r13725&quot; sodipodi:docname=&quot;left.svg&quot; x=&quot;0px&quot; y=&quot;0px&quot; viewBox=&quot;0 0 800 500&quot; style=&quot;enable-background:new 0 0 800 500;&quot; xml:space=&quot;preserve&quot;&gt;&lt;metadata id=&quot;metadata165&quot;&gt;&lt;rdf:RDF&gt;&lt;cc:Work rdf:about=&quot;&quot;&gt;&lt;dc:format&gt;image/svg+xml&lt;/dc:format&gt;&lt;dc:type rdf:resource=&quot;http://purl.org/dc/dcmitype/StillImage&quot; /&gt;&lt;dc:title&gt;&lt;/dc:title&gt;&lt;/cc:Work&gt;&lt;/rdf:RDF&gt;&lt;/metadata&gt;&lt;defs id=&quot;defs163&quot; /&gt;&lt;sodipodi:namedview pagecolor=&quot;#ffffff&quot; bordercolor=&quot;#666666&quot; borderopacity=&quot;1&quot; objecttolerance=&quot;10&quot; gridtolerance=&quot;10&quot; guidetolerance=&quot;10&quot; inkscape:pageopacity=&quot;0&quot; inkscape:pageshadow=&quot;2&quot; inkscape:window-width=&quot;2272&quot; inkscape:window-height=&quot;987&quot; id=&quot;namedview161&quot; showgrid=&quot;false&quot; inkscape:zoom=&quot;2.8284271&quot; inkscape:cx=&quot;383.71895&quot; inkscape:cy=&quot;223.10272&quot; inkscape:window-x=&quot;30&quot; inkscape:window-y=&quot;552&quot; inkscape:window-maximized=&quot;0&quot; inkscape:current-layer=&quot;knight&quot;&gt;&lt;inkscape:grid type=&quot;xygrid&quot; id=&quot;grid4304&quot; /&gt;&lt;/sodipodi:namedview&gt;&lt;style type=&quot;text/css&quot; id=&quot;style3&quot;&gt;
.st0{fill:#EFCA7A;}
.st1{fill:url(#rect4958_1_);}
.st2{fill:url(#path4458_1_);}
.st3{fill:url(#path4388_1_);}
.st4{fill:#3C75D8;}
.st5{fill:url(#path5007_1_);}
.st6{fill:#3C74D8;}
.st7{fill:#EEAD6E;}
.st8{fill:#5AB7EB;}
.st9{fill:url(#path5011_1_);}
.st10{fill:#FFFFFF;}
.st11{fill:url(#path5094_1_);}
.st12{fill:url(#path5277_1_);}
.st13{fill:url(#path6749-8_1_);}
.st14{fill:#5AB7EB;stroke:#EFCA7A;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;}
.st15{fill:#9AD48B;}
.st16{fill:#55A5E4;}
.st17{fill:#87D8C9;}
.st18{fill:#57ADBD;}
.st19{fill:#305AD1;}
.st20{fill:#ED6498;}
.st21{fill:url(#path5048_1_);}
.st22{fill:url(#path5048-5-9_1_);}
.st23{fill:url(#rect5050_1_);}
.st24{fill:url(#rect5054_1_);}
.st25{fill:#E39769;}
.st26{fill:#F5E1B8;}
.st27{fill:#87D8C9;stroke:#FFFFFF;stroke-width:4;stroke-linejoin:round;}
.st28{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:2;stroke-linejoin:round;}
.st29{fill:#2A3E79;}
.st30{fill:#ED6498;stroke:#FFFFFF;stroke-width:4;stroke-linejoin:round;}
.st31{fill:#D5577B;}
.st32{fill:none;stroke:#FFFFFF;stroke-width:4;stroke-linejoin:round;}
.st33{fill:#B66297;}
.st34{fill:url(#path4790_1_);}
.st35{fill:#D15678;}
.st36{fill:#B17549;}
.st37{fill:#76B478;}
.st38{fill:#A94681;}
.st39{fill:#A85199;}
&lt;/style&gt;&lt;g id=&quot;layer1&quot; transform=&quot;translate(-120,-272.36215)&quot; inkscape:groupmode=&quot;layer&quot; inkscape:label=&quot;Layer 1&quot;&gt;&lt;linearGradient id=&quot;rect4958_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;498.0596&quot; y1=&quot;509.2888&quot; x2=&quot;498.0596&quot; y2=&quot;428.1182&quot; gradientTransform=&quot;matrix(1.0886,0,0,-1.0886,-76.6316,986.7869)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#86CAF1&quot; id=&quot;stop8&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop10&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path4458_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;469.8683&quot; y1=&quot;479.1555&quot; x2=&quot;469.8683&quot; y2=&quot;406.4042&quot; gradientTransform=&quot;matrix(1.0886,0,0,-1.0886,-76.6316,986.7869)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop14&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#3C74D8&quot; id=&quot;stop16&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path4388_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;491.9883&quot; y1=&quot;423.9904&quot; x2=&quot;518.9883&quot; y2=&quot;326.4904&quot; gradientTransform=&quot;matrix(1.0886,0,0,-1.0886,-79.0748,986.7869)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#3C74D8&quot; id=&quot;stop20&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#6BBFED&quot; id=&quot;stop22&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5007_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;692.8659&quot; y1=&quot;274.3174&quot; x2=&quot;662.8659&quot; y2=&quot;154.3174&quot; gradientTransform=&quot;matrix(-0.8815,0,0,-0.8815,1084.001,899.2036)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop27&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#3C74D8&quot; id=&quot;stop29&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5011_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;477.0703&quot; y1=&quot;207.5825&quot; x2=&quot;497.9811&quot; y2=&quot;285.6224&quot; gradientTransform=&quot;matrix(0.866,0.5,0.5,-0.866,-183.5338,623.4193)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#3C74D8&quot; id=&quot;stop37&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop39&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5094_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;369.2835&quot; y1=&quot;132.9394&quot; x2=&quot;307.6075&quot; y2=&quot;177.9014&quot; gradientTransform=&quot;matrix(0.7764,0.1537,0.1537,-0.7764,23.6254,745.9479)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop45&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#89CCF1&quot; id=&quot;stop47&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5277_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;444.0759&quot; y1=&quot;284.9756&quot; x2=&quot;382.3999&quot; y2=&quot;329.9377&quot; gradientTransform=&quot;matrix(0.7764,0.1537,0.1537,-0.7764,23.6254,745.9479)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#5AB7EB&quot; id=&quot;stop52&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#89CCF1&quot; id=&quot;stop54&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path6749-8_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;289.0414&quot; y1=&quot;415.9288&quot; x2=&quot;315.4805&quot; y2=&quot;317.257&quot; gradientTransform=&quot;matrix(0.9949,0.1005,0.1005,-0.9949,-83.8674,861.9324)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#9DD4F3&quot; id=&quot;stop60&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#9DD4F3;stop-opacity:0&quot; id=&quot;stop62&quot; /&gt;&lt;/linearGradient&gt;&lt;g id=&quot;knight&quot; inkscape:label=&quot;#g4574&quot;&gt;&lt;g inkscape:label=&quot;#g4460&quot; id=&quot;knight-head&quot; transform=&quot;translate(0,2)&quot;&gt;&lt;path id=&quot;rect4958&quot; inkscape:connector-curvature=&quot;0&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:export-ydpi=&quot;299.94162&quot; sodipodi:nodetypes=&quot;ccccccccc&quot; class=&quot;st1&quot; d=&quot;m 508.4,501.3 c 0,21.6 0,37.1 0.3,43.4 l 6.3,43.5 -90.8,26.9 -8.1,-26.9 10,-27.2 c 10.5,-26 -5.8,-32.4 -10,-59.9 0,-32.7 20.7,-51 46.1,-51 28.4,0 46.5,18.3 46.2,51.2 l 0,0 z&quot; style=&quot;fill:url(#rect4958_1_)&quot; /&gt;&lt;path id=&quot;path4458&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st2&quot; d=&quot;m 423.8,470.9 -34.6,43.5 36.4,45.8 16.4,3 12.2,3.2 16.8,-37.3 c 5.8,-2.5 9.5,-8.2 9.5,-14.5 0,-8.8 -7.1,-15.8 -15.8,-15.8 -3.5,0 -6.9,1.2 -9.6,3.3 -12.2,-6.5 -25.6,-16.6 -31.3,-31.2 l 0,0 z&quot; style=&quot;fill:url(#path4458_1_)&quot; /&gt;&lt;path id=&quot;path4452&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccccccccccccccc&quot; class=&quot;st29&quot; d=&quot;m 420.5,488 -3.9,4.5 10.4,22.9 7.3,-0.3 -13.8,-27.1 z m -7.4,8.7 -3.9,4.5 5.5,14.2 7.3,-0.3 -8.9,-18.4 z m -8.7,8.5 -3.9,4.5 2.4,5.8 6.3,-0.3 -4.8,-10 z&quot; style=&quot;fill:#2a3e79&quot; /&gt;&lt;circle id=&quot;circle4480&quot; class=&quot;st8&quot; cx=&quot;464.70001&quot; cy=&quot;514.59998&quot; r=&quot;6.4000001&quot; style=&quot;fill:#5ab7eb&quot; /&gt;&lt;rect style=&quot;fill:#efca7a&quot; height=&quot;15&quot; width=&quot;90.400002&quot; class=&quot;st0&quot; y=&quot;415.39999&quot; x=&quot;417&quot; id=&quot;rect6153&quot; /&gt;&lt;rect style=&quot;fill:#87d8c9;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; height=&quot;15&quot; width=&quot;90.699997&quot; class=&quot;st27&quot; y=&quot;415.39999&quot; x=&quot;416.60001&quot; id=&quot;rect6155&quot; /&gt;&lt;rect style=&quot;fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linejoin:round&quot; height=&quot;15&quot; width=&quot;48.400002&quot; class=&quot;st28&quot; y=&quot;415.39999&quot; x=&quot;459&quot; id=&quot;rect6157&quot; /&gt;&lt;rect style=&quot;fill:#2a3e79&quot; height=&quot;15&quot; width=&quot;90.400002&quot; class=&quot;st29&quot; y=&quot;383.39999&quot; x=&quot;417&quot; id=&quot;rect6159&quot; /&gt;&lt;rect style=&quot;fill:#ed6498;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; height=&quot;15&quot; width=&quot;90.699997&quot; class=&quot;st30&quot; y=&quot;383.39999&quot; x=&quot;416.60001&quot; id=&quot;rect6161&quot; /&gt;&lt;rect style=&quot;fill:#ffffff;stroke:#ffffff;stroke-width:2;stroke-linejoin:round&quot; height=&quot;15&quot; width=&quot;25.4&quot; class=&quot;st28&quot; y=&quot;383.39999&quot; x=&quot;482&quot; id=&quot;rect6163&quot; /&gt;&lt;/g&gt;&lt;path style=&quot;fill:url(#path4388_1_)&quot; d=&quot;m 509.2,546.1 c -7.1,-0.9 -16.8,-1.5 -24.8,-1.5 -10.9,0 -49,0 -65.3,24 l 0,19.5 c 6.3,3.5 10.9,0 10.9,0 l 97,0 -7.4,-32.7 c -1.1,-6 -4.6,-8.5 -10.4,-9.3 l 0,0 z&quot; class=&quot;st3&quot; sodipodi:nodetypes=&quot;sscccccs&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4388&quot; /&gt;&lt;path style=&quot;fill:#3c75d8&quot; d=&quot;m 486.9,544.7 c -6.8,13.9 -10.2,31.8 -11.9,43.5 l 52,0 -7.4,-32.7 c -1.1,-6.1 -4.6,-8.6 -10.4,-9.4 -6.4,-0.8 -14.9,-1.3 -22.3,-1.4 z&quot; class=&quot;st4&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4388-7&quot; /&gt;&lt;path style=&quot;fill:url(#path5007_1_)&quot; d=&quot;m 550,587.4 12.8,67.4 -22.4,112.3 -141.8,-30.9 6.9,-91.6 6.4,-56.5 c 43.9,-15.7 103.9,-14.5 138.1,-0.7 z&quot; class=&quot;st5&quot; sodipodi:nodetypes=&quot;ccccccc&quot; inkscape:export-ydpi=&quot;299.94162&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5007&quot; /&gt;&lt;path style=&quot;fill:#3c74d8&quot; d=&quot;m 436.8,588.8 c -17.5,39.1 -33.1,49.4 -33.1,49.4 l -0.4,38.7 c 33.1,-0.9 50.7,-55.3 33.5,-88.1 l 0,0 z&quot; class=&quot;st6&quot; sodipodi:nodetypes=&quot;ccccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5269&quot; /&gt;&lt;path style=&quot;fill:#5ab7eb&quot; d=&quot;m 504.3,731.8 c -29.7,10.3 -71.3,5.8 -105.6,4.4 l -10.3,36.2 117.5,0 -1.6,-40.6 z&quot; class=&quot;st8&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5297&quot; /&gt;&lt;g inkscape:label=&quot;#g4509&quot; id=&quot;knight-arm&quot;&gt;&lt;g id=&quot;knight-forearm&quot; inkscape:label=&quot;#g4496&quot;&gt;&lt;path inkscape:transform-center-y=&quot;-43.187318&quot; inkscape:transform-center-x=&quot;55.606691&quot; style=&quot;fill:#efca7a&quot; d=&quot;m 257,561.9 c -6,-0.7 -11.5,3.6 -12.2,9.7 -0.1,1.1 -0.1,2.2 0.1,3.3 l 16.2,94.8 c 0.9,6 6.5,10.1 12.6,9.2 6,-0.9 10.1,-6.5 9.2,-12.6 0,-0.1 0,-0.2 -0.1,-0.3 l -16.2,-94.8 c -0.7,-4.9 -4.7,-8.7 -9.6,-9.3 z&quot; class=&quot;st0&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6836&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-18.46193&quot; inkscape:transform-center-x=&quot;50.385779&quot; style=&quot;fill:#eead6e&quot; d=&quot;m 275.5,623.2 -20.3,11.7 5.3,30.7 22.5,1.5 c 0,-0.4 -0.1,-0.8 -0.1,-1.1 l -7.4,-42.8 0,0 z&quot; class=&quot;st7&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6836-4&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-31.91193&quot; inkscape:transform-center-x=&quot;39.735779&quot; style=&quot;fill:#5ab7eb&quot; d=&quot;m 274.6,598.9 c -0.4,0 -0.9,0 -1.3,0 l -7.3,6.6 -10.3,1 c -14.1,1.4 -16.6,13.6 -16.6,13.6 l 4.8,29.8 24.7,4.5 4.1,10.1 47.7,-27.1 c 0,0 -13.1,-5 -22,-8.3 -2.5,-5.6 -5.6,-10.8 -9.1,-16 -4,-5.8 -7.5,-13 -13.5,-14.1 -0.4,0 -0.8,-0.1 -1.2,-0.1 l 0,0 z&quot; class=&quot;st8&quot; sodipodi:nodetypes=&quot;scccccccccscs&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6832&quot; /&gt;&lt;path style=&quot;fill:#3c74d8&quot; d=&quot;m 308.7,635.7 c -5.4,0.2 -11.8,1.6 -18.1,4.8 -1.8,0.6 -3.5,1.6 -5.4,2.8 -7.5,5.2 -12.8,12.6 -12.8,17.9 0.5,7.9 7.2,9.2 13,8.8 l 11.6,15.7 2.1,5.3 40,-29.2 -18.9,-11.3 c 2.3,-4.2 4,-9.1 1.2,-11.6 -2.4,-2.2 -7,-3.4 -12.7,-3.2 l 0,0 z&quot; class=&quot;st6&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6224&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-160.96193&quot; inkscape:transform-center-x=&quot;73.335779&quot; style=&quot;fill:#ffffff&quot; d=&quot;m 271.1,594.1 -26.5,-163.5 -15.9,-19.4 -7.5,23.2 25.7,157.8 24.2,1.9 z&quot; class=&quot;st10&quot; sodipodi:nodetypes=&quot;cccccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6749&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-59.032641&quot; inkscape:transform-center-x=&quot;46.735779&quot; style=&quot;fill:#3c74d8&quot; d=&quot;m 273.6,597.7 c -0.9,-0.1 -1.7,0 -2.6,0.1 l -6.8,7.2 -0.7,0.1 10.1,6.4 8.4,-8.6 c -2.5,-2.7 -5.2,-4.8 -8.4,-5.2 z&quot; class=&quot;st6&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6832-5&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-61.41193&quot; inkscape:transform-center-x=&quot;58.635779&quot; style=&quot;fill:#eead6e&quot; d=&quot;m 269.9,590.6 -21.7,3.4 3.4,19.8 c 0,0 7.4,-0.6 10.5,-0.7 4.6,-0.2 11.4,-1.6 11.4,-1.6 l -3.6,-20.9 z&quot; class=&quot;st7&quot; sodipodi:nodetypes=&quot;cccscc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6836-1&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-161.01193&quot; inkscape:transform-center-x=&quot;69.585779&quot; style=&quot;fill:url(#path6749-8_1_)&quot; d=&quot;m 228.7,411.2 29,181.8 13.4,1 -26.5,-163.5 -15.9,-19.3 z&quot; class=&quot;st13&quot; sodipodi:nodetypes=&quot;ccccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6749-8&quot; /&gt;&lt;path inkscape:transform-center-y=&quot;-71.26193&quot; inkscape:transform-center-x=&quot;60.835779&quot; style=&quot;fill:#5ab7eb;stroke:#efca7a;stroke-width:10;stroke-linecap:round;stroke-linejoin:round&quot; d=&quot;M 288.3,587.5 227,597.2&quot; class=&quot;st14&quot; sodipodi:nodetypes=&quot;cc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6834&quot; /&gt;&lt;circle inkscape:transform-center-y=&quot;-80.669105&quot; inkscape:transform-center-x=&quot;31.854481&quot; style=&quot;fill:#efca7a&quot; r=&quot;9.9999971&quot; cy=&quot;304.91553&quot; cx=&quot;-573.59076&quot; class=&quot;st0&quot; transform=&quot;matrix(0.03161112,-0.99950024,0.99950024,0.03161112,0,0)&quot; id=&quot;path6241&quot; /&gt;&lt;circle inkscape:transform-center-y=&quot;-71.531544&quot; inkscape:transform-center-x=&quot;90.914224&quot; style=&quot;fill:#efca7a&quot; r=&quot;9.9999971&quot; cy=&quot;247.17365&quot; cx=&quot;-584.55908&quot; class=&quot;st0&quot; transform=&quot;matrix(0.03161112,-0.99950024,0.99950024,0.03161112,0,0)&quot; id=&quot;circle6244&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;path5011&quot; inkscape:connector-curvature=&quot;0&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:export-ydpi=&quot;299.94162&quot; sodipodi:nodetypes=&quot;cccccc&quot; class=&quot;st9&quot; d=&quot;m 367,618.8 -45.5,34.8 c -17.1,20 -6.3,35.9 9.9,46.4 l 67.3,-42.6 6.5,-16.6 -38.2,-22 z&quot; style=&quot;fill:url(#path5011_1_)&quot; /&gt;&lt;path id=&quot;path5094&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st11&quot; d=&quot;m 318.9,654.2 c -10.2,7.9 -20.6,14.5 -21.9,35.3 0.5,16.6 14.2,26.3 22.6,26.4 0.1,0 0.3,0 0.4,0 l 0,0 c 0,0 35.9,1.9 34.8,-21.9 -0.5,-11.4 -15.5,-21.7 -31.6,-18.2 -3.5,-5.8 -5.1,-12.9 -4.3,-21.6 l 0,0 z&quot; style=&quot;fill:url(#path5094_1_)&quot; /&gt;&lt;path id=&quot;path5271&quot; class=&quot;st8&quot; d=&quot;m 414.6,577.2 c -24.8,-4.9 -52.6,9.4 -62.1,32 -9.5,22.6 3,44.9 27.8,49.8 24.8,4.9 52.6,-9.4 62.1,-32 9.5,-22.6 -3,-44.9 -27.8,-49.8 z&quot; inkscape:connector-curvature=&quot;0&quot; style=&quot;fill:#5ab7eb&quot; /&gt;&lt;path id=&quot;path5277&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;cscc&quot; class=&quot;st12&quot; d=&quot;m 430.7,584.5 c -21,-35.8 -43.8,-47.7 -55.4,-42.7 -11.6,5 -0.9,43.8 -0.9,43.8 l 56.3,-1.1 z&quot; style=&quot;fill:url(#path5277_1_)&quot; /&gt;&lt;/g&gt;&lt;path style=&quot;fill:#55a5e4&quot; d=&quot;m 478.2,595.1 c 25,30 7.8,126.2 7.8,126.2 28.3,-20.4 112.7,-98.9 62,-121.4 -28.5,-11.3 -69.8,-4.8 -69.8,-4.8 l 0,0 z&quot; class=&quot;st16&quot; sodipodi:nodetypes=&quot;cccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5843&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;g6415&quot; transform=&quot;translate(120,167.36216)&quot;&gt;&lt;path id=&quot;path6518&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st17&quot; d=&quot;M587.2,496.1c0,0-5.4,23.6,12.8,34c0,0,0,0,0,0.1 c0,0,0.1,0,0.1,0c-3.3,14.1-12.9,31.6-21.8,45.2c-8.9,13.7-17,23.6-17,23.6l7,5.7c0,0,8.3-10.3,17.5-24.4 c8.9-13.6,18.6-30.8,22.7-46.6c19.9,5.1,32.6-15.1,32.6-15.1s-15.6-12.7-31.9,0.8C607.4,498.2,587.2,496.1,587.2,496.1 L587.2,496.1z&quot; /&gt;&lt;path id=&quot;path6518-9&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st18&quot; d=&quot;M593.5,548.4c-4.3,9.4-9.9,18.9-15.2,27 c-3.8,5.8-7.4,10.9-10.3,14.9l5.3,7.9c3.3-4.4,7.7-10.6,12.5-17.9c4.7-7.3,9.7-15.6,14-24.1L593.5,548.4z&quot; /&gt;&lt;path id=&quot;path5761&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st18&quot; d=&quot;M612.3,525.5 c4.6-7.2,17.4-6.9,17.9-5.9C630.2,519.5,625.4,528.9,612.3,525.5z&quot; /&gt;&lt;path id=&quot;path5763&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st18&quot; d=&quot;M600.5,519.8 c3.4-7.8-4.7-15.7-5.8-15.7C594.7,504.1,590.3,510.9,600.5,519.8z&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;astro&quot; inkscape:label=&quot;#g4527&quot;&gt;&lt;g inkscape:label=&quot;#g4360&quot; id=&quot;astro-head&quot;&gt;&lt;path transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;path5048&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccccsssc&quot; class=&quot;st21&quot; d=&quot;m 290.6,347.6 c 4.2,2.8 8.1,6 11.6,9.6 -2.7,29.2 -27.3,56.7 -27.3,56.7 l -47.4,58.7 c 11.9,7.9 23.1,1.5 38.5,1.5 41.4,0 58.8,-30 62,-55.5 3.2,-25.8 -6.8,-56.4 -21.9,-67.6 -3.6,-2.7 -10.4,-3.4 -15.5,-3.4 z&quot; style=&quot;fill:url(#path5048_1_)&quot; /&gt;&lt;path transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;path5048-5&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;sssccccs&quot; class=&quot;st0&quot; d=&quot;m 249,335 c -11,0 -21.6,2.1 -30.9,6.6 -24.2,12 -38.1,41.9 -38.1,68.4 0,33.3 22.6,62.6 55.5,72 32.9,-9.3 55.5,-38.6 55.5,-72 0,-5.4 -0.6,-11 -1.7,-16.5 5.9,-10.1 11.7,-23 12.9,-36.3 C 288.6,343.5 269.8,335 249,335 Z&quot; style=&quot;fill:#efca7a&quot; /&gt;&lt;path transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;path5048-5-9&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st22&quot; d=&quot;m 210.5,403.9 c -14.7,0.2 -25,3.7 -30.5,6.1 0,33.3 22.6,62.6 55.5,72 9.4,-2.7 16.2,10.6 23.7,5.1 l 10.8,1.2 30,-15.2 c 0,0 0,-26.7 -11.6,-43.6 l 0,0 c 1.7,-6.2 2.7,-12.8 2.7,-19.4 -5.4,2.3 -10.6,4.2 -15.8,5.9 -0.2,-2.5 -0.1,-4.9 0.2,-7.1 l -9.1,0 c -0.2,2.9 -0.1,6.1 0.7,9.4 -22.9,-11.3 -41.9,-14.5 -56.6,-14.4 l 0,0 z&quot; style=&quot;fill:url(#path5048-5-9_1_)&quot; /&gt;&lt;ellipse transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;path5426&quot; class=&quot;st0&quot; cx=&quot;292.5&quot; cy=&quot;411.39999&quot; rx=&quot;17.700001&quot; ry=&quot;24.1&quot; style=&quot;fill:#efca7a&quot; /&gt;&lt;ellipse transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;ellipse5446&quot; class=&quot;st25&quot; cx=&quot;293.5&quot; cy=&quot;411.39999&quot; rx=&quot;8.6999998&quot; ry=&quot;11.9&quot; style=&quot;fill:#e39769&quot; /&gt;&lt;ellipse id=&quot;path6013&quot; transform=&quot;matrix(0.96592886,-0.25880773,0.25880773,0.96592886,0,0)&quot; class=&quot;st26&quot; cx=&quot;416.81494&quot; cy=&quot;661.30237&quot; rx=&quot;18.199457&quot; ry=&quot;9.0997286&quot; style=&quot;fill:#f5e1b8&quot; /&gt;&lt;g id=&quot;widgets&quot; transform=&quot;translate(-1.051492e-6,-3.8964845e-6)&quot; inkscape:label=&quot;#g4368&quot;&gt;&lt;g inkscape:label=&quot;#g4392&quot; id=&quot;astro-widget-2&quot;&gt;&lt;g id=&quot;g4316&quot; transform=&quot;translate(-0.40156857,3.0329448)&quot;&gt;&lt;path id=&quot;path6213&quot; sodipodi:cx=&quot;561.42236&quot; sodipodi:cy=&quot;469.36215&quot; sodipodi:end=&quot;5.4977871&quot; sodipodi:rx=&quot;20&quot; sodipodi:ry=&quot;20&quot; sodipodi:start=&quot;4.4505896&quot; sodipodi:type=&quot;arc&quot; class=&quot;st29&quot; d=&quot;m 556.24598,450.04364 a 20,20 0 0 1 19.31852,5.17638 l -14.14214,14.14213 z&quot; style=&quot;fill:#2a3e79&quot; /&gt;&lt;path id=&quot;circle6215&quot; sodipodi:cx=&quot;561.42236&quot; sodipodi:cy=&quot;469.36215&quot; sodipodi:end=&quot;4.4505896&quot; sodipodi:rx=&quot;20&quot; sodipodi:ry=&quot;20&quot; sodipodi:start=&quot;0&quot; sodipodi:type=&quot;arc&quot; class=&quot;st31&quot; d=&quot;m 581.42236,469.36215 a 20,20 0 0 1 -18.25688,19.9239 20,20 0 0 1 -21.43927,-16.45093 20,20 0 0 1 14.51977,-22.79148 l 5.17638,19.31851 z&quot; style=&quot;fill:#d5577b&quot; /&gt;&lt;path id=&quot;path6217&quot; sodipodi:cx=&quot;561.42236&quot; sodipodi:cy=&quot;469.36215&quot; sodipodi:end=&quot;1.0471976&quot; sodipodi:rx=&quot;20&quot; sodipodi:ry=&quot;20&quot; sodipodi:start=&quot;5.4977871&quot; sodipodi:type=&quot;arc&quot; class=&quot;st17&quot; d=&quot;m 575.5645,455.22002 a 20,20 0 0 1 5.68676,16.75266 20,20 0 0 1 -9.8289,14.70998 l -10,-17.32051 z&quot; style=&quot;fill:#87d8c9&quot; /&gt;&lt;/g&gt;&lt;circle style=&quot;fill:#ffffff&quot; cy=&quot;472.39999&quot; cx=&quot;561&quot; class=&quot;st10&quot; transform=&quot;matrix(0.5,-0.866,0.866,0.5,-128.5777,722.0211)&quot; id=&quot;circle6241&quot; r=&quot;10&quot; /&gt;&lt;circle style=&quot;fill:none;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; cy=&quot;472.39999&quot; cx=&quot;561&quot; class=&quot;st32&quot; transform=&quot;matrix(0.5,-0.866,0.866,0.5,-128.5776,722.0211)&quot; id=&quot;circle6243&quot; r=&quot;21&quot; /&gt;&lt;/g&gt;&lt;g inkscape:label=&quot;#g4383&quot; id=&quot;astro-widget-1&quot;&gt;&lt;circle style=&quot;fill:#ffffff&quot; r=&quot;10&quot; cy=&quot;487.39999&quot; cx=&quot;610&quot; class=&quot;st10&quot; id=&quot;path6259&quot; /&gt;&lt;path style=&quot;fill:none;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; d=&quot;m 610,487.4 18,-30 18,30 -36,0 z&quot; class=&quot;st32&quot; sodipodi:nodetypes=&quot;cccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6261&quot; /&gt;&lt;circle style=&quot;fill:#ffffff&quot; r=&quot;10&quot; cy=&quot;457.39999&quot; cx=&quot;628&quot; class=&quot;st10&quot; id=&quot;circle6263&quot; /&gt;&lt;circle style=&quot;fill:#ffffff&quot; r=&quot;10&quot; cy=&quot;487.39999&quot; cx=&quot;646&quot; class=&quot;st10&quot; id=&quot;circle6265&quot; /&gt;&lt;circle style=&quot;fill:#ed6498&quot; r=&quot;5&quot; cy=&quot;487.39999&quot; cx=&quot;646&quot; class=&quot;st20&quot; id=&quot;circle6267&quot; /&gt;&lt;circle style=&quot;fill:#efca7a&quot; r=&quot;5&quot; cy=&quot;487.39999&quot; cx=&quot;610&quot; class=&quot;st0&quot; id=&quot;circle6269&quot; /&gt;&lt;circle style=&quot;fill:#87d8c9&quot; r=&quot;5&quot; cy=&quot;457.39999&quot; cx=&quot;628&quot; class=&quot;st17&quot; id=&quot;circle6271&quot; /&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;g transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;g5537&quot;&gt;&lt;rect style=&quot;fill:#ed6498&quot; height=&quot;100&quot; width=&quot;80&quot; class=&quot;st20&quot; inkscape:export-ydpi=&quot;299.94162&quot; inkscape:export-xdpi=&quot;299.94162&quot; y=&quot;505&quot; x=&quot;220&quot; id=&quot;rect5042&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.8815,0,0,-0.8815,260.0652,537.8677)&quot; y2=&quot;190.05299&quot; x2=&quot;20.401699&quot; y1=&quot;113.2891&quot; x1=&quot;20.401699&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path5048_1_&quot;&gt;&lt;stop id=&quot;stop78&quot; style=&quot;stop-color:#2A3E79&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop80&quot; style=&quot;stop-color:#407DDB&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient gradientTransform=&quot;matrix(1,0,0,-1,-22.6878,575.9393)&quot; y2=&quot;72.020203&quot; x2=&quot;273.65421&quot; y1=&quot;156.71159&quot; x1=&quot;259.2352&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path5048-5-9_1_&quot;&gt;&lt;stop id=&quot;stop85&quot; style=&quot;stop-color:#E39769&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop87&quot; style=&quot;stop-color:#EFCA7A&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.8815,0,0,-0.8815,260.0652,537.8677)&quot; y2=&quot;-86.507797&quot; x2=&quot;-4.9840002&quot; y1=&quot;47.374802&quot; x1=&quot;-4.9840002&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;rect5050_1_&quot;&gt;&lt;stop id=&quot;stop91&quot; style=&quot;stop-color:#EFCA7A&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop93&quot; style=&quot;stop-color:#E39769&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path style=&quot;fill:url(#rect5050_1_)&quot; d=&quot;m 205,465 c 0,0 -0.1,14.1 -27.3,23.2 -25.2,8.4 -26.3,76.8 -26.3,76.8 l 0,65 208.6,0 0,-65 0,-40 c 0,-22.2 -14.4,-25.9 -35.4,-35.1 -19.9,-8.7 -25.4,-24.8 -25.4,-24.8 -36.3,6.2 -66.4,4.5 -94.2,-0.1 z&quot; class=&quot;st23&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;rect5050&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.8815,0,0,-0.8815,260.0652,537.8677)&quot; y2=&quot;-79.005096&quot; x2=&quot;114.1163&quot; y1=&quot;-16.6136&quot; x1=&quot;83.487801&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;rect5054_1_&quot;&gt;&lt;stop id=&quot;stop97&quot; style=&quot;stop-color:#E39769&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop99&quot; style=&quot;stop-color:#D68462&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path style=&quot;fill:#e39769&quot; d=&quot;m 171.6,488.2 c -25.1,0 -45.4,20.2 -45.4,45.4 l 0,90.1 c 0,2.2 0.2,4.3 0.4,6.4 l 142.9,0 c 0.3,-2.1 0.4,-4.2 0.4,-6.4 l 0,-90.1 c 0,-25.1 -20.2,-45.4 -45.4,-45.4 l -52.9,0 z&quot; class=&quot;st25&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;rect5062&quot; /&gt;&lt;/g&gt;&lt;g inkscape:label=&quot;#astro-arm&quot; id=&quot;astro-arm&quot;&gt;&lt;g id=&quot;g6431-3&quot; transform=&quot;matrix(0.96592583,0.25881905,-0.25881905,0.96592583,318.69464,32.12646)&quot;&gt;&lt;circle id=&quot;circle6437-2&quot; transform=&quot;matrix(0.2588,-0.9659,0.9659,0.2588,-173.6291,955.722)&quot; class=&quot;st15&quot; cx=&quot;535.90002&quot; cy=&quot;591&quot; r=&quot;17.5&quot; style=&quot;fill:#9ad48b&quot; /&gt;&lt;/g&gt;&lt;path transform=&quot;matrix(0.88153159,0,0,0.88153159,367.4327,217.0077)&quot; id=&quot;rect5054&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st24&quot; d=&quot;m 335.8,494.6 c -19.4,-0.2 -34.7,18 -35.4,37.3 -1.1,31.6 8.2,53.5 18.8,93.1 0.4,1.5 1,3.2 1.8,4.9 l 77.4,0 c -1.4,-3.5 -5.1,-12.7 -9.3,-26.7 -0.6,-2 4.4,-8.7 3.8,-10.9 -2.3,-7.9 -4.9,-16.7 -7.6,-26.4 -6.3,-22.5 -20.1,-71 -49.5,-71.3 z&quot; style=&quot;fill:url(#rect5054_1_)&quot; /&gt;&lt;path id=&quot;path4790&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st34&quot; d=&quot;m 710.6,747.9 -32.7,24.5 40.3,0 -7.6,-24.5 z&quot; style=&quot;fill:url(#path4790_1_)&quot; /&gt;&lt;path id=&quot;path4754&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st0&quot; d=&quot;m 694,679.2 -20,10.6 c -1.8,1.1 -2.6,2.6 -1.8,4.8 l 10.8,28.6 c 1,2.9 2.5,4.2 5.5,2.4 l 18.3,-10.7 c -0.8,-3.4 -1.7,-6.4 -2.5,-9.3 -1.6,4.9 -5.7,8.1 -10.3,8.1 -6.1,0 -11.1,-5.6 -11.1,-12.6 0,0 0,0 0,0 0,-7 4.9,-12.6 11.1,-12.6 0,0 0,0 0,0 1.6,0 3.2,0.4 4.6,1.2 -1.5,-3.7 -3.1,-7 -4.6,-10.5 z m 4.7,10.5 c 0.4,0.8 0.7,1.7 1.1,2.6 -0.4,-0.8 -0.7,-1.7 -1.1,-2.6 z m 1.5,3.6 c 0.4,1.1 0.9,2.3 1.3,3.5 -0.5,-1.2 -0.9,-2.4 -1.3,-3.5 z m 1.4,3.8 c 0.9,2.6 1.9,5.5 2.8,8.6 -1,-3.2 -1.9,-6.1 -2.8,-8.6 z&quot; style=&quot;fill:#efca7a&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;rect4800&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st36&quot; d=&quot;m 503.4,675.4 c -1.9,0 -3.4,1.5 -3.4,3.4 0,1.9 1.5,3.4 3.4,3.4 l 53.2,0 c 1.9,0 3.4,-1.5 3.4,-3.4 0,-1.9 -1.5,-3.4 -3.4,-3.4 l -53.2,0 z m 0,14 c -1.9,0 -3.4,1.5 -3.4,3.4 0,1.9 1.5,3.4 3.4,3.4 l 53.2,0 c 1.9,0 3.4,-1.5 3.4,-3.4 0,-1.9 -1.5,-3.4 -3.4,-3.4 l -53.2,0 z m 0,14 c -1.9,0 -3.4,1.5 -3.4,3.4 0,1.9 1.5,3.4 3.4,3.4 l 53.2,0 c 1.9,0 3.4,-1.5 3.4,-3.4 0,-1.9 -1.5,-3.4 -3.4,-3.4 l -53.2,0 z&quot; style=&quot;fill:#b17549&quot; /&gt;&lt;circle id=&quot;path5716&quot; class=&quot;st0&quot; cx=&quot;547&quot; cy=&quot;733.90002&quot; r=&quot;13&quot; style=&quot;fill:#efca7a&quot; /&gt;&lt;circle id=&quot;circle6140&quot; class=&quot;st25&quot; cx=&quot;547&quot; cy=&quot;733.90002&quot; r=&quot;5.5&quot; style=&quot;fill:#e39769&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;rect5009-4&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st15&quot; d=&quot;M132.1,696.9c-3.3-0.2-6.7,0.6-9.6,2.3 c-0.9,0.5-1.8,1.1-2.6,1.8v71.3h69.8c6.5-5.4,8.2-14.8,4-22.2c-4.3-7.5-13.5-10.7-21.6-7.5c2.6-5.2,2.4-11.4-0.5-16.5 c-4.8-8.3-15.3-11.2-23.6-6.5c1.5-4.7,0.9-9.8-1.5-14C143.5,700.5,138.1,697.2,132.1,696.9z&quot; /&gt;&lt;path id=&quot;path6307&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st17&quot; d=&quot;M195.1,666.8l-5,7.5c2.4,1.6,4.8,3.5,7.2,5.6 c-0.2,0.7-0.3,1.4-0.3,2.2c0,4.9,4,8.9,8.9,8.9c0.6,0,1.2-0.1,1.8-0.2c6.4,7.7,12.4,16.9,17.6,26.8c8.9,17.3,15,36.9,16,54.7h9 c-0.9-17.1-6-35.2-13.6-51.7c31.1-17.4,12.7-38.9,14.2-40.1c0,0-19.4,8.9-20.7,27.4c-4.8-8.5-10.1-16.3-15.8-23.2 c0.3-0.8,0.4-1.7,0.4-2.6c0-4.9-4-8.9-8.9-8.9c0,0,0,0,0,0c-0.8,0-1.5,0.1-2.3,0.3C200.8,671,198,668.7,195.1,666.8z&quot; /&gt;&lt;path id=&quot;circle6334-4&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st17&quot; d=&quot;M592.8,711.7c-2.4,1.6-4.9,3.5-7.2,5.5 c-0.4-0.1-0.9-0.1-1.3-0.1c-4.7,0-8.5,3.8-8.5,8.5c0,0.4,0,0.9,0.1,1.3c-7.3,8.3-14,18.4-19.6,29.4c-2.7,5.2-5.1,10.5-7.2,16h9.7 c1.7-4,3.5-8,5.5-11.9c5.1-10,11.3-19.2,17.7-26.7c0.8,0.2,1.5,0.3,2.3,0.3c4.7,0,8.5-3.8,8.5-8.5c0-0.8-0.1-1.6-0.3-2.4 c1.8-1.5,3.6-2.9,5.4-4.1L592.8,711.7z&quot; /&gt;&lt;g id=&quot;g6340&quot; transform=&quot;matrix(0.84924623,0,0,0.84924623,153.57286,265.35211)&quot;&gt;&lt;path id=&quot;circle6332&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st33&quot; d=&quot;M525.1,495c-5.5,0-10,4.5-10,10c0,0,0,0,0,0 c0,1.9,0.5,3.7,1.5,5.3c-9.6,1.7-16.5,10-16.5,19.7c0,11,9,20,20,20c0,0,0,0,0,0c7.4,0,14.2-4.1,17.7-10.7c1.9,2,4.5,3.2,7.3,3.2 c5.5,0,10-4.5,10-10c0-5-3.6-9.2-8.5-9.9c2.2-1.9,3.5-4.7,3.5-7.6c0-5.5-4.5-10-10-10c-1.8,0-3.6,0.5-5.1,1.4 c0.1-0.5,0.1-0.9,0.1-1.4C535.1,499.5,530.6,495,525.1,495z&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;g6425&quot; transform=&quot;matrix(-0.96592583,0.25881905,0.25881905,0.96592583,876.0146,39.92019)&quot;&gt;&lt;path id=&quot;path6409&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st15&quot; d=&quot;m 558.4,561 c 1.5,-0.4 3.1,-0.6 4.7,-0.6 9.2,0 16.9,7.2 17.5,16.4 2.4,-1.2 5.1,-1.8 7.8,-1.8 9.7,0 17.5,7.8 17.5,17.5 0,0 0,0 0,0 0,1.2 -0.1,2.4 -0.4,3.6 l -71.1,19.1 c -5.1,-3.2 -8.2,-8.8 -8.2,-14.8 0,-9.7 7.8,-17.5 17.5,-17.5 0.9,0 1.8,0.1 2.7,0.2 -0.5,-1.7 -0.8,-3.4 -0.8,-5.2 0,-7.9 5.2,-14.8 12.8,-16.9 z&quot; style=&quot;fill:#9ad48b&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;g6558&quot; transform=&quot;matrix(-0.70710678,0.70710679,0.70710679,0.70710678,171.7484,212.61978)&quot;&gt;&lt;path id=&quot;path6518-0&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st15&quot; d=&quot;M134.8,547.2c0,0,15.6-12.7,31.9,0.8 c1.9-21.3,22-23.3,22-23.3s5.4,23.6-12.8,34c0,0,0,0,0,0.1c0,0-0.1,0-0.1,0c2.8,12.1,10.3,26.6,17.9,39l-6.5,6.5 c-8-12.8-16.2-27.9-19.8-42.1C147.5,567.4,134.8,547.2,134.8,547.2L134.8,547.2z&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;g6616&quot; transform=&quot;translate(59.999996,157.36216)&quot;&gt;&lt;path id=&quot;path6409-7&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st17&quot; d=&quot;M183.9,579.7c-3.3-0.2-6.7,0.6-9.6,2.3 c-6.3,3.6-9.7,10.7-8.5,17.9c-4-0.6-8,0.1-11.5,2.1c-4.7,2.7-7.9,7.6-8.6,13h80.6c4.7-5.6,5.3-13.6,1.7-19.9 c-4.8-8.4-15.5-11.2-23.9-6.4c0,0,0,0,0,0c-1.6,0.9-3.1,2.1-4.3,3.5c-0.4-1.3-0.9-2.6-1.6-3.8C195.3,583.2,189.9,580,183.9,579.7z &quot; /&gt;&lt;/g&gt;&lt;linearGradient id=&quot;path4790_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;697.5295&quot; y1=&quot;206.5126&quot; x2=&quot;736.4718&quot; y2=&quot;148.5356&quot; gradientTransform=&quot;matrix(1,0,0,-1,-20,941.7243)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#E39769&quot; id=&quot;stop136&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#EFCA7A&quot; id=&quot;stop138&quot; /&gt;&lt;/linearGradient&gt;&lt;path id=&quot;path6303&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st35&quot; d=&quot;M188.1,639.4c-4.9,0-8.9,4-8.9,8.9c0,0.4,0,0.7,0.1,1.1 c-1.5-1-3.2-1.5-5-1.5c-4.9,0-8.9,4-8.9,8.9c0,0,0,0,0,0c0,2.8,1.4,5.5,3.7,7.2c-4.4,0.6-7.7,4.4-7.7,8.8c0,4.9,4,8.9,8.9,8.9 c2.5,0,4.8-1,6.5-2.8c3.1,5.9,9.1,9.5,15.8,9.5c9.8,0,17.8-8,17.8-17.8c0-8.6-6.2-16-14.7-17.5c0.9-1.4,1.4-3.1,1.4-4.7 C197,643.3,193,639.4,188.1,639.4C188.1,639.4,188.1,639.4,188.1,639.4L188.1,639.4z&quot; /&gt;&lt;path id=&quot;path5761-2&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st37&quot; d=&quot;M450,721.3 c-2.5-8.1,6.1-17.7,7.1-17.5C457.2,703.8,461.1,713.6,450,721.3z&quot; /&gt;&lt;path id=&quot;path5763-5&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st37&quot; d=&quot;M437.6,725.1 c-3.8-7.6-15-6.6-15.7-5.8C421.9,719.3,424.2,727.2,437.6,725.1z&quot; /&gt;&lt;path id=&quot;path5763-5-3&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st18&quot; d=&quot;M237.9,710.5 c10.4-3.1,11.5-17.5,10.6-18.5C248.5,692,238.2,693.2,237.9,710.5z&quot; /&gt;&lt;path id=&quot;path5763-9-9-2-5&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st37&quot; d=&quot;M481.7,759.4 c-5.6-6.4,0.6-16.7,0.6-16.7S489.2,750.6,481.7,759.4z&quot; /&gt;&lt;path id=&quot;path5763-9-9-2-5-7&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st37&quot; d=&quot;M498,762.5 c2.9-10.8,12.3-11.3,12.3-11.3S509.5,761.5,498,762.5z&quot; /&gt;&lt;path id=&quot;path5763-9-9-2-5-7-5&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st18&quot; d=&quot;M265.9,765.3 c2.9-10.8,12.3-11.3,12.3-11.3S277.4,764.3,265.9,765.3z&quot; /&gt;&lt;path id=&quot;path5930&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st18&quot; d=&quot;M244.5,760c3.5-10.6-4-16.2-4-16.2 S235.4,752.9,244.5,760z&quot; /&gt;&lt;g id=&quot;g6673&quot; transform=&quot;translate(120,167.36216)&quot;&gt;&lt;path id=&quot;path5930-3&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; class=&quot;st37&quot; d=&quot;M32.4,573.6 c10-5,8.6-14.3,8.6-14.3S31,562.1,32.4,573.6z&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;path6303-59&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st38&quot; d=&quot;M195.7,653c-5.9,12.6-3.6,28.5-2.2,35.3 c9.5-0.5,16.9-8.3,16.9-17.8C210.4,661.9,204.2,654.5,195.7,653z&quot; /&gt;&lt;path id=&quot;circle6332-6&quot; inkscape:connector-curvature=&quot;0&quot; class=&quot;st39&quot; d=&quot;M578.3,714.3c0,0.4,0,0.8,0,1.2c0,9.4,7.6,17,17,17 c0,0,0,0,0,0c6.3,0,12.1-3.5,15-9.1C602.6,716.9,588.2,714.9,578.3,714.3z&quot; /&gt;&lt;/g&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;div class=&quot;col5 pin-bottomright unity-illustration unity-illustration-right&quot;&gt;&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --&gt;
&lt;svg xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:cc=&quot;http://creativecommons.org/ns#&quot; xmlns:rdf=&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; xmlns:svg=&quot;http://www.w3.org/2000/svg&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:sodipodi=&quot;http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd&quot; xmlns:inkscape=&quot;http://www.inkscape.org/namespaces/inkscape&quot; version=&quot;1.1&quot; id=&quot;svg2&quot; inkscape:version=&quot;0.91 r13725&quot; sodipodi:docname=&quot;right.svg&quot; x=&quot;0px&quot; y=&quot;0px&quot; viewBox=&quot;0 0 800 500&quot; enable-background=&quot;new 0 0 800 500&quot; xml:space=&quot;preserve&quot;&gt;&lt;metadata id=&quot;metadata144&quot;&gt;&lt;rdf:RDF&gt;&lt;cc:Work rdf:about=&quot;&quot;&gt;&lt;dc:format&gt;image/svg+xml&lt;/dc:format&gt;&lt;dc:type rdf:resource=&quot;http://purl.org/dc/dcmitype/StillImage&quot; /&gt;&lt;dc:title&gt;&lt;/dc:title&gt;&lt;/cc:Work&gt;&lt;/rdf:RDF&gt;&lt;/metadata&gt;&lt;defs id=&quot;defs142&quot;&gt;&lt;linearGradient gradientTransform=&quot;matrix(1.0027,0,0,1,-422.7973,-395)&quot; y2=&quot;627.79773&quot; x2=&quot;1146.5032&quot; y1=&quot;758.79773&quot; x1=&quot;977.00311&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;linearGradient4443&quot;&gt;&lt;stop id=&quot;stop114-1&quot; style=&quot;stop-color:#EFCA7A&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop116-1&quot; style=&quot;stop-color:#E39769&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;/defs&gt;&lt;sodipodi:namedview pagecolor=&quot;#ffffff&quot; bordercolor=&quot;#666666&quot; borderopacity=&quot;1&quot; objecttolerance=&quot;10&quot; gridtolerance=&quot;10&quot; guidetolerance=&quot;10&quot; inkscape:pageopacity=&quot;0&quot; inkscape:pageshadow=&quot;2&quot; inkscape:window-width=&quot;1974&quot; inkscape:window-height=&quot;1045&quot; id=&quot;namedview140&quot; showgrid=&quot;true&quot; inkscape:zoom=&quot;6.3&quot; inkscape:cx=&quot;460.15153&quot; inkscape:cy=&quot;181.24402&quot; inkscape:window-x=&quot;259&quot; inkscape:window-y=&quot;0&quot; inkscape:window-maximized=&quot;0&quot; inkscape:current-layer=&quot;wizard&quot;&gt;&lt;inkscape:grid type=&quot;xygrid&quot; id=&quot;grid4413&quot; /&gt;&lt;/sodipodi:namedview&gt;&lt;linearGradient id=&quot;path4886_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;855.6414&quot; y1=&quot;797.818&quot; x2=&quot;890.2982&quot; y2=&quot;927.1587&quot; gradientTransform=&quot;matrix(0.8815 0 0 0.906 -275.9092 -338.1316)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#87D8C9&quot; id=&quot;stop15&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#57ADBD&quot; id=&quot;stop17&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5106_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;856.0267&quot; y1=&quot;728.4072&quot; x2=&quot;918.0063&quot; y2=&quot;804.8738&quot; gradientTransform=&quot;matrix(1 0 0 1 -415.0001 -395)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#57ADBD&quot; id=&quot;stop21&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#57ADBD;stop-opacity:0&quot; id=&quot;stop23&quot; /&gt;&lt;/linearGradient&gt;&lt;linearGradient id=&quot;path5116_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;827.491&quot; y1=&quot;751.5367&quot; x2=&quot;889.4706&quot; y2=&quot;828.0032&quot; gradientTransform=&quot;matrix(1 0 0 1 -423.5494 -387.3107)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#57ADBD&quot; id=&quot;stop29&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#57ADBD;stop-opacity:0&quot; id=&quot;stop31&quot; /&gt;&lt;/linearGradient&gt;&lt;g id=&quot;wizard&quot; inkscape:label=&quot;#g4365&quot;&gt;&lt;g inkscape:label=&quot;#g9&quot; id=&quot;wizard-staff&quot;&gt;&lt;g transform=&quot;matrix(0.98988222,-0.14189149,0.14189149,0.98988222,-375.71658,333.68315)&quot; id=&quot;g6246&quot;&gt;&lt;linearGradient gradientTransform=&quot;matrix(1 5.902173e-06 -5.902173e-06 1 -693.9878 -653.4913)&quot; y2=&quot;678.3507&quot; x2=&quot;1734.4923&quot; y1=&quot;833.6298&quot; x1=&quot;1576.5702&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path4894_1_&quot;&gt;&lt;stop id=&quot;stop7&quot; style=&quot;stop-color:#9D6A44&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop9&quot; style=&quot;stop-color:#B38463&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot;M1032.2,25.4c-13.4-0.2-26.2,7-32.9,18.9 c-0.4,0.6-0.6,1.3-0.8,2.1c-1,2.1-1.6,4.4-1.6,6.7c0,8.5,6.9,15.4,15.4,15.4c8.5,0,15.4-6.9,15.4-15.4c0-4.5-2-8.8-5.4-11.8 c4.1-1.8,8.7-2.4,13.3-1.6c9.7,1.7,17.2,9.2,18.8,18.9c1.6,9.7-3,19.2-11.6,24c-8.6,4.8-19.1,3.6-26.5-2.9 c-2.8-2.5-7.1-2.4-9.7,0.3c-0.2,0.2-0.4,0.4-0.6,0.6L838.5,248.1c-2.9,2.9-3,7.7-0.1,10.6c2.9,2.9,7.7,3,10.6,0.1c0,0,0,0,0.1-0.1 l164.1-164.1c11.1,6.4,24.9,6.6,36.4,0.3c13.7-7.6,21.2-23.1,18.6-38.6S1053.5,28.6,1038,26C1036.1,25.6,1034.1,25.4,1032.2,25.4 L1032.2,25.4z&quot; fill=&quot;url(#path4894_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4894&quot; /&gt;&lt;/g&gt;&lt;path d=&quot;M565.9,358.1l-25.3,33.8l11.9,9.1l23.4-31.3L565.9,358.1 z&quot; fill=&quot;#775338&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4894-3&quot; /&gt;&lt;circle r=&quot;6.4&quot; cy=&quot;243.1&quot; cx=&quot;634.1&quot; fill=&quot;#E8C781&quot; id=&quot;path6671&quot; /&gt;&lt;/g&gt;&lt;path d=&quot; M451.1,336.9h79.3c56.2,57.6,65.4,109.3,97,163.1h-238C403.8,445.6,417.1,389.8,451.1,336.9L451.1,336.9z&quot; fill=&quot;url(#path4886_1_)&quot; sodipodi:nodetypes=&quot;ccccc&quot; inkscape:export-ydpi=&quot;299.94162&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4886&quot; /&gt;&lt;path d=&quot;M447,351.2 c29.2,32.5,36,46.3,53,53.8s25.9,6.9,25.9,6.9l-5.3,21.5c0,0-41-26.1-46.2-32.6C453.6,375.1,447,351.2,447,351.2L447,351.2z&quot; fill=&quot;url(#path5106_1_)&quot; sodipodi:nodetypes=&quot;csccsc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5106&quot; /&gt;&lt;path d=&quot;M544.8,352.3c-0.1,0-0.2,0-0.3,0.1 c-19,95-79,140.6-79,140.6l16.4,0.8c0,0,5-4,12.3-12c10.7,2.6,16.8-8.1,12.9-14.8c12.8,4,19.7-11.1,11.4-17.1l0,0 c0.8-1.2,1.6-2.5,2.3-3.8c-0.1,0.4-0.2,0.7-0.3,1.1c12.5,2.6,17-10.9,10.4-16.9c11.2,1.4,15.3-10.7,9.6-16.7 c11.2,0.2,14.2-13.7,5.9-18.4c0,0-1.8,1.9-3.9,5.5c1.6-4.5,3.2-9.2,4.6-14.1c0,0.8,0,1.5,0,2.4c10.2-0.3,11.8-11.1,6.6-15.7 c2.1-1.1,3.6-2.4,4.4-3.8C556.5,360.8,546.8,352.3,544.8,352.3L544.8,352.3z M537.8,412.6L537.8,412.6L537.8,412.6L537.8,412.6 L537.8,412.6z M507,466.4c0,0.1-0.1,0.2-0.1,0.3c0,0,0-0.1-0.1-0.1C506.9,466.5,506.9,466.5,507,466.4z&quot; fill=&quot;#4E9AE3&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4907-2-1&quot; /&gt;&lt;path d=&quot;M431,363.9c3,70.8,38,114.3,38,114.3l14.4-13.5 c0,0-31.4-44-34.4-52S431,363.9,431,363.9z&quot; fill=&quot;url(#path5116_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5116&quot; /&gt;&lt;g inkscape:label=&quot;#g82&quot; id=&quot;wizard-head&quot;&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.9892 0.1469 -0.1469 0.9892 -343.2021 -547.0495)&quot; y2=&quot;561.2917&quot; x2=&quot;980.6251&quot; y1=&quot;664.6667&quot; x1=&quot;978.8919&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path4884_1_&quot;&gt;&lt;stop id=&quot;stop79&quot; style=&quot;stop-color:#87D8C9&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop81&quot; style=&quot;stop-color:#B8E8DF&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot; M446.8,332.3c0,0-18.5-56.6-0.5-94c6.8-14,12.8-32.8,18.7-34.2c19.9-4.8,44.7-2.7,63.4,1.7c35.8,8.3,85.8,48.5,85.8,48.5 s-10.2,7.1-39.1,28.5c-20.3,15.1-46.1,59.7-46.1,59.7C492.6,352.5,464.8,338.6,446.8,332.3z&quot; fill=&quot;url(#path4884_1_)&quot; sodipodi:nodetypes=&quot;cssscscc&quot; inkscape:export-ydpi=&quot;299.94162&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4884&quot; /&gt;&lt;path d=&quot;M466.6,200.9c-1-0.1-2-0.2-3-0.2c-0.1,0-0.2-0.1-0.4-0.1 c-11.4-2.1-15.2,11-21.2,21.2c-10.7,18.3-15.7,50.2-12.9,74.2c2.9,24,14.1,52.9,14.1,52.9l11.9-12.7c-0.1-0.4-0.2-0.7-0.3-1.1 c-1-0.3-1.8-0.6-2.8-1c5.6-7.3,4.2-19.6-6-21.1c-1-0.1-2-0.2-3.1-0.1c7.1-4,10.5-17.9-2.6-21.2c8.1-2.8,11.9-17.4,0.6-21.4 c7.4-3.1,12.7-14.8,2.5-21c8.6-1,17.6-10.5,7.6-19.9c7.7,0.7,17.4-8.8,9.3-18c4.9,0.6,13.2-3.9,15.4-8.6 C472.5,201.9,469.4,201.2,466.6,200.9L466.6,200.9z&quot; fill=&quot;#4E9AE3&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4492&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.872 0.1295 -0.1295 0.872 -241.785 -463.9663)&quot; y2=&quot;806.4214&quot; x2=&quot;938.554&quot; y1=&quot;705.6585&quot; x1=&quot;984.5106&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path4884-3_1_&quot;&gt;&lt;stop id=&quot;stop86&quot; style=&quot;stop-color:#57ADBD&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop88&quot; style=&quot;stop-color:#88D8C9&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot; M479.6,268.8c-15.7,22.6,35.1,41.8-20,82.7c0,0,25.8-9,37.7-8.5c0.2,0,0.5,0,0.7,0c5.1,0.1,10.4-0.2,16.1-0.9 c4.2-0.6,6.5,8.6,10.8,7.6c1.4-0.3,6.3-11.1,6.3-11.1s23.6-40.8,43.9-55.9C560.7,250.6,492.6,250,479.6,268.8L479.6,268.8z&quot; enable-background=&quot;new &quot; fill=&quot;url(#path4884-3_1_)&quot; opacity=&quot;0.5&quot; sodipodi:nodetypes=&quot;scccccccs&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4884-3&quot; /&gt;&lt;path d=&quot;m 446.7,145.6 c -1.2,0 -2.4,0.4 -3.7,1.4 -2.6,2.1 -2,7 0,10 2.6,3.9 10,10 10,10 0,0 7.4,-6.1 10,-10 2,-3 2.6,-7.9 0,-10 -5,-4 -10,2 -10,2 0,0 -2.8,-3.4 -6.3,-3.4 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6176&quot; style=&quot;fill:#ffffff;stroke:#ffffff;stroke-width:8;stroke-linejoin:round&quot; /&gt;&lt;path d=&quot;m 446.7,145.6 c -1.2,0 -2.4,0.4 -3.7,1.4 -2.6,2.1 -2,7 0,10 2.6,3.9 10,10 10,10 0,0 7.4,-6.1 10,-10 2,-3 2.6,-7.9 0,-10 -5,-4 -10,2 -10,2 0,0 -2.8,-3.4 -6.3,-3.4 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6193&quot; style=&quot;fill:#ed6498&quot; /&gt;&lt;path d=&quot;m 486.7,145.6 c -1.2,0 -2.4,0.4 -3.7,1.4 -2.6,2.1 -2,7 0,10 2.6,3.9 10,10 10,10 0,0 7.4,-6.1 10,-10 2,-3 2.6,-7.9 0,-10 -5,-4 -10,2 -10,2 0,0 -2.8,-3.4 -6.3,-3.4 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6199&quot; style=&quot;fill:#ffffff;stroke:#ffffff;stroke-width:8;stroke-linejoin:round&quot; /&gt;&lt;path d=&quot;m 486.7,145.6 c -1.2,0 -2.4,0.4 -3.7,1.4 -2.6,2.1 -2,7 0,10 2.6,3.9 10,10 10,10 0,0 7.4,-6.1 10,-10 2,-3 2.6,-7.9 0,-10 -5,-4 -10,2 -10,2 0,0 -2.8,-3.4 -6.3,-3.4 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6201&quot; style=&quot;fill:#ed6498&quot; /&gt;&lt;path d=&quot;m 526.7,145.6 c -1.2,0 -2.4,0.4 -3.7,1.4 -2.6,2.1 -2,7 0,10 2.6,3.9 10,10 10,10 0,0 7.4,-6.1 10,-10 2,-3 2.6,-7.9 0,-10 -5,-4 -10,2 -10,2 0,0 -2.8,-3.4 -6.3,-3.4 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6203&quot; style=&quot;fill:#ffffff;stroke:#ffffff;stroke-width:8;stroke-linejoin:round&quot; /&gt;&lt;/g&gt;&lt;g inkscape:label=&quot;#g101&quot; id=&quot;wizard-scarf2&quot;&gt;&lt;linearGradient gradientTransform=&quot;matrix(1.1282 0 0 1.1256 -549.6759 -452.1952)&quot; y2=&quot;711.7581&quot; x2=&quot;891.883&quot; y1=&quot;727.8088&quot; x1=&quot;1067.731&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path5382_1_&quot;&gt;&lt;stop id=&quot;stop97&quot; style=&quot;stop-color:#EEAD6E&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop99&quot; style=&quot;stop-color:#D68462&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot;M722.9,320c-14.8,0.2-29.5,2.3-42.3,7.5 C640,344,611,386.1,552.5,385.9c-29.7-0.1-63.7-5.1-86.1-34.5h-19.7c20.1,41.3,49.1,56.8,104.4,60.4c51.6,3.4,88.3-27.7,126.9-45.8 c35.6-16.7,84-2.4,121.8,12.7v-47.2C783.3,326.7,752.8,319.5,722.9,320L722.9,320z&quot; fill=&quot;url(#path5382_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5382&quot; /&gt;&lt;path d=&quot;M727.1,320c-1.4,0-2.8,0-4.2,0c-7.6,0.1-15.2,0.7-22.5,2 l-6.7,20c0,0,51.1-6.1,106.3,9.2v-19.8C784.1,326.9,755.6,320.2,727.1,320L727.1,320z&quot; fill=&quot;#EFCA7A&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5382-0&quot; /&gt;&lt;path d=&quot;M686,325.3 c-2,0.7-4,1.4-6,2.2c-29.2,11.9-52.4,37-84.8,50.1c23.5-8.2,62-29.5,90.8-39.1V325.3z&quot; fill=&quot;#EFCA7A&quot; sodipodi:nodetypes=&quot;csccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5382-1&quot; /&gt;&lt;/g&gt;&lt;path d=&quot;M438.4,333.4 c0,0,71.7-1.3,95-1.3c7.8,0,17.6,16.8,10,18.8c-19.3,5.2-104.5,1.8-104.5,1.8L438.4,333.4z&quot; fill=&quot;url(#rect4888_1_)&quot; sodipodi:nodetypes=&quot;csscc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;rect4888&quot; /&gt;&lt;g inkscape:label=&quot;#g119&quot; id=&quot;wizard-scarf1&quot;&gt;&lt;linearGradient gradientTransform=&quot;matrix(1.0027 0 0 1 -422.7973 -395)&quot; y2=&quot;627.7977&quot; x2=&quot;1146.5032&quot; y1=&quot;758.7977&quot; x1=&quot;977.0031&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path5343_1_&quot;&gt;&lt;stop id=&quot;stop114&quot; style=&quot;stop-color:#EFCA7A&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop116&quot; style=&quot;stop-color:#E39769&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot;M800,255.6c-48.9-0.4-100.7,28.6-130.4,74.3 c-12.5,19.3-62,97.3-108.1,110c-29.8,8.2-61.7-0.8-79.8-16.7c-22.2-19.5-27.3-41.3-31.4-69.7l0,0c-1-5.9-1.6-17.7,5.1-20l0.1-0.1 l-13.9,0.2c-9.9-1.7-14,5.9-12.9,18.6c3.5,39,17.8,68.8,35.1,87.2c20.2,21.4,50.9,38.3,99.5,27.8c65.3-14.2,104.6-80.4,135.5-119.8 c28.7-36.6,77.1-46.9,101.2-48.1L800,255.6L800,255.6z&quot; fill=&quot;url(#path5343_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5343&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(1.0027 0 0 1 -422.7973 -395)&quot; y2=&quot;853.2328&quot; x2=&quot;1028.5988&quot; y1=&quot;743.2328&quot; x1=&quot;1116.0988&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path5343-1_1_&quot;&gt;&lt;stop id=&quot;stop120&quot; style=&quot;stop-color:#D68562&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop122&quot; style=&quot;stop-color:#EEAD6E&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot;M759.4,290.7c-34.1,0.4-72.5,13.2-89.8,39.2 c-7.6,11.3-27.8,43.4-52.8,70.3c-16.2,19-36.4,50.3-83.3,70.1c9.1,0.1,19-0.9,29.8-3.2c65.3-14.2,105-80.1,135.5-119.8 c26.1-34,75.4-45.4,101.2-47v-3C788.8,292.8,774.5,290.5,759.4,290.7L759.4,290.7z&quot; fill=&quot;url(#path5343-1_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5343-1&quot; /&gt;&lt;path id=&quot;path4411&quot; inkscape:connector-curvature=&quot;0&quot; d=&quot;m 800,255.6 c -48.9,-0.4 -100.7,28.6 -130.4,74.3 -12.5,19.3 -62,97.3 -108.1,110 -29.8,8.2 -61.7,-0.8 -79.8,-16.7 -22.2,-19.5 -27.3,-41.3 -31.4,-69.7 l 0,0 -2.52839,-7.71362 L 441.6,333.6 c -9.9,-1.7 -14,5.9 -12.9,18.6 3.5,39 17.8,68.8 35.1,87.2 20.2,21.4 50.9,38.3 99.5,27.8 65.3,-14.2 104.6,-80.4 135.5,-119.8 28.7,-36.6 77.1,-46.9 101.2,-48.1 l 0,-43.7 z&quot; style=&quot;fill:url(#path5343_1_)&quot; sodipodi:nodetypes=&quot;ccccccccccccccc&quot; /&gt;&lt;/g&gt;&lt;path inkscape:connector-curvature=&quot;0&quot; style=&quot;fill:#efca7a;fill-opacity:1&quot; d=&quot;m 438.96875,333.36328 c -7.46876,0.006 -10.81436,6.40393 -10.40625,16.63672 l 3.21726,-4.92063 c -0.26483,-2.98893 17.81448,-1.57283 18.494,-4.61295 0.7279,-3.25656 2.25381,-5.98024 5.12663,-6.96642 l 0.0996,-0.0996 -13.90039,0.19922 c -0.92813,-0.15938 -1.80419,-0.23697 -2.63086,-0.23633 z&quot; id=&quot;path4411-9&quot; sodipodi:nodetypes=&quot;cccsccccc&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;princess&quot; inkscape:label=&quot;#g4323&quot;&gt;&lt;path d=&quot;M356.5,404.2v-39.4h-2.6c0.9-1.1,1.8-2.2,2.6-3.3l-49.6,20.1c-5.6,9.9-13.9,20.5-23.8,20.5 C313.9,415.4,337.5,420.4,356.5,404.2z&quot; fill=&quot;#B17549&quot; id=&quot;path5&quot; /&gt;&lt;path d=&quot;M268.5,402.2v27.9v65.1v4.8h120.8v-4.8v-65.1v-27.9H268.5z&quot; fill=&quot;#D5577B&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;rect4935&quot; /&gt;&lt;path d=&quot;M288.9,400.8l8.7-6.3c0,0,9,11.7,40.2,13 c-7.7,5.1-8.4,6.8-8.4,6.8S306.3,418.9,288.9,400.8z&quot; fill=&quot;#E8C781&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4748&quot; /&gt;&lt;g inkscape:label=&quot;#g42&quot; id=&quot;princess-shoulders&quot;&gt;&lt;path d=&quot; M409.8,438.5L433,500h-37.2L368,438.5H409.8z&quot; fill=&quot;#B17549&quot; sodipodi:nodetypes=&quot;ccccc&quot; inkscape:export-ydpi=&quot;299.94162&quot; inkscape:export-xdpi=&quot;299.94162&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5139&quot; /&gt;&lt;path d=&quot;M369.5,458.5l5.8,41.5h36.3l-10.1-39L369.5,458.5z&quot; fill=&quot;#9D6A44&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5720&quot; /&gt;&lt;path d=&quot;M386.6,388.9c-20.5,0-37.2,16.6-37.2,37.2 c0,12.9,6.7,24.8,17.6,31.6l5.3,21.6l6.7-4.9c0,0,5.5,5.5,11.2,3.5c5.6-2,5.8-10,5.8-10s6.8,5.9,12.1,1.9c4.8-3.6,4-10.2,4-10.2 s9.2,2,12.3-4.6c2.3-4.8-2.6-9.8-4.8-11.7c2.8-5.3,4.2-11.2,4.2-17.1C423.8,405.6,407.1,388.9,386.6,388.9z&quot; fill=&quot;#A94681&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5887&quot; /&gt;&lt;path d=&quot;M238.9,423l-23.4,78h37.9l18.1-55.8L238.9,423z&quot; fill=&quot;#B17549&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4954&quot; /&gt;&lt;path d=&quot;M252.3,446.6L243,501h10.5l13.6-41L252.3,446.6z&quot; fill=&quot;#9D6A44&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4954-5&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(1 0 0 1 -425.0001 -395)&quot; y2=&quot;761.4254&quot; x2=&quot;655.0449&quot; y1=&quot;821.8717&quot; x1=&quot;687.4971&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path4931-8_1_&quot;&gt;&lt;stop id=&quot;stop43&quot; style=&quot;stop-color:#D5577B&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop45&quot; style=&quot;stop-color:#F396B9&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot; M257.3,385.5c-19.6,0.1-35.3,15.5-35.3,35.4c0,6.9,1.9,13.4,5.2,19c-2.1,2.4-4.3,6.1-2.7,9.6c3.1,6.7,12.3,4.6,12.3,4.6 s-0.9,6.6,4,10.2c5.3,4,12.1-1.9,12.1-1.9s0.2,8,5.8,10c5.7,2,11.2-3.5,11.2-3.5l6.7,4.9l5.8-24c8.5-6.8,13.9-17.3,13.9-29l8-9.5 c-21.4-8.8-19.1-24.7-45.1-25.9C258.6,385.5,258,385.5,257.3,385.5z&quot; fill=&quot;url(#path4931-8_1_)&quot; sodipodi:nodetypes=&quot;cscscscscccccssc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4931-8&quot; /&gt;&lt;path d=&quot;M268.5,471.1 c9.4,0.9,15.7-4.4,19.5-8.3l-8,38.2h-11.5V471.1z&quot; fill=&quot;#A94681&quot; sodipodi:nodetypes=&quot;ccccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path5406&quot; /&gt;&lt;path d=&quot;M408.7,444.7c-22.1-14-17.5-37.4-17.5-37.4 S417.8,417.9,408.7,444.7z&quot; fill=&quot;#894891&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4765-2&quot; /&gt;&lt;path d=&quot;M252.5,448.3c-5.7-25.5,14-38.8,14-38.8 S277.9,435.7,252.5,448.3z&quot; fill=&quot;#A94681&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4765&quot; /&gt;&lt;/g&gt;&lt;path d=&quot; M311,351.1c0,0,1.3,109.7,5.3,129.3&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;cc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4835&quot; /&gt;&lt;g inkscape:label=&quot;#g4280&quot; id=&quot;princess-head&quot;&gt;&lt;path d=&quot;M308.8,382.1c-0.6,1.1-1.2,2.3-1.9,3.4l49.6-20.1c5.5-7.8,8.8-17.8,8.8-28.7 c0-25.2-17.6-45.5-39.3-45.5c-13.4,0-27.7,5.8-33.2,18.5c-4.2,9.8-6,21.5-6,31.1C287,373.7,295.8,380.8,308.8,382.1z&quot; fill=&quot;#B17549&quot; id=&quot;path7&quot; /&gt;&lt;linearGradient gradientTransform=&quot;matrix(0.9295 0 0 0.9295 -378.1905 -357.1504)&quot; y2=&quot;921.4138&quot; x2=&quot;777.3432&quot; y1=&quot;785.1469&quot; x1=&quot;777.3432&quot; gradientUnits=&quot;userSpaceOnUse&quot; id=&quot;path4933_1_&quot;&gt;&lt;stop id=&quot;stop55&quot; style=&quot;stop-color:#775338&quot; offset=&quot;0&quot; /&gt;&lt;stop id=&quot;stop57&quot; style=&quot;stop-color:#4E3625&quot; offset=&quot;1&quot; /&gt;&lt;/linearGradient&gt;&lt;path d=&quot;M345.8,281.2c-17.6,0-53.5,26-53.5,26 c3.9,10.5,10,25.6,11,33.2l2.3,159.7h90.8c-13.2-32-17.6-75.8-17.6-169h-0.1c0-0.4,0-0.8,0-1.2 C378.8,302.9,369.2,281.2,345.8,281.2L345.8,281.2z&quot; fill=&quot;url(#path4933_1_)&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4933&quot; /&gt;&lt;path d=&quot;M302,247.5c-3,0-5.5,2.5-5.5,5.5l0,0c0,2,1.1,3.8,2.8,4.8 l-5.4,14.2c-0.3,0.7,0,1.6,0.6,2l14.8,10.9c0.8,0.6,1.9,0.4,2.4-0.4l0,0l7.5-10.9c0.4-0.6,0.4-1.5-0.1-2.1L306.6,256 c0.6-0.9,0.9-1.9,0.9-3C307.5,250,305,247.5,302,247.5L302,247.5z&quot; fill=&quot;#E39769&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4618&quot; /&gt;&lt;path d=&quot;M334,247.5c-3,0-5.5,2.5-5.5,5.5l0,0c0,1.5,0.6,3,1.8,4 l-8.8,14.7c-0.3,0.6-0.3,1.3,0,1.8l11.7,18.6c0.5,0.8,1.6,1.1,2.4,0.5c0.2-0.2,0.4-0.4,0.6-0.6l10.6-18.6c0.3-0.6,0.3-1.2,0-1.8 l-8.9-14.8c1-1,1.6-2.4,1.6-3.9C339.5,250,337,247.5,334,247.5L334,247.5z&quot; fill=&quot;#E39769&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4622&quot; /&gt;&lt;path d=&quot;M366,247.5c-3,0-5.5,2.5-5.5,5.5l0,0c0,1.1,0.4,2.2,1,3.2 l-12.4,15.3c-0.6,0.7-0.5,1.8,0.2,2.4l11.1,10.1c0.7,0.6,1.7,0.6,2.3,0l11.2-10.1c0.5-0.5,0.7-1.3,0.5-1.9l-5.5-14.3 c1.6-1,2.6-2.8,2.6-4.7C371.5,250,369,247.5,366,247.5L366,247.5z&quot; fill=&quot;#E39769&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4626&quot; /&gt;&lt;path d=&quot; M368.9,302.4c4.1,28.2,5.6,107.2,5.6,136.1c0,20.4,7.8,56.7,7.8,56.7&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4808&quot; /&gt;&lt;path d=&quot; M350.3,301.3c4.8,26.9,5.5,100.1,5.6,120.9c0.1,20.9,4.9,67.9,4.9,67.9&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4823&quot; /&gt;&lt;path d=&quot; M319.3,302.3c10,28.9,10,99.1,10.1,119.9c0.1,20.9,2.9,67.9,2.9,67.9&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4825&quot; /&gt;&lt;path d=&quot; M341,308.7c2.3,18.4,3.4,38.3,4.1,58.6c0,0,2.9,61.2,2.9,88.1c0,10.8,0.8,32.5,0.8,32.5&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;cssc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4853&quot; /&gt;&lt;path d=&quot; M329.2,301.6c8.3,28.1,8.6,102.5,8.6,120.7c0,20.9,2.9,67.9,2.9,67.9&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4827&quot; /&gt;&lt;path d=&quot; M359.7,302.4c4.1,28.2,5.6,114.9,5.6,136.1c0,20.4,4.8,56.7,4.8,56.7&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4829&quot; /&gt;&lt;path d=&quot; M309.1,303.4c13.3,29.9,11.1,114.7,12.1,135.1c1.1,20.4,3.8,56.7,3.8,56.7&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;csc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4831&quot; /&gt;&lt;path d=&quot; M306.8,333.2c-2-18-9.7-32.3-9.7-32.3&quot; enable-background=&quot;new &quot; stroke-linejoin=&quot;round&quot; stroke-linecap=&quot;round&quot; stroke-width=&quot;3&quot; stroke=&quot;#4E3625&quot; fill=&quot;none&quot; opacity=&quot;0.4&quot; sodipodi:nodetypes=&quot;cc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4833&quot; /&gt;&lt;path d=&quot; M288,251.5c-3,0-5.5,2.5-5.5,5.5c0,2.9,2.2,5.3,5.1,5.5l5.1,16.2l0.1,18.7c-2.8,0.7-4.8,3.2-4.8,6.1c0,3.3,2.6,6.1,6,6.2 c0.1,0,0.2,0.1,0.2,0.1c22,4.4,58.5,5.5,81.3-0.5c0.1,0,0.2-0.1,0.2-0.1c3.2-0.3,5.6-3,5.6-6.2c0-2.8-1.9-5.3-4.7-6l-0.1-18.5 l5.3-15.8h0.1c3,0,5.5-2.5,5.5-5.5s-2.5-5.5-5.5-5.5s-5.5,2.5-5.5,5.5c0,0.8,0.2,1.5,0.5,2.2l-15.3,16.7l-7.4-14.5 c1.4-1,2.2-2.7,2.2-4.4c0-3-2.5-5.5-5.5-5.5s-5.5,2.5-5.5,5.5c0,1.4,0.6,2.8,1.6,3.8l-12.4,16.7l-12.3-17.2c0.7-1,1.1-2.1,1.1-3.4 c0-3-2.5-5.5-5.5-5.5s-5.5,2.5-5.5,5.5c0,1.6,0.7,3.2,2,4.2l-7,14.3L293,259.2c0.3-0.7,0.5-1.4,0.5-2.2 C293.5,254,291,251.5,288,251.5L288,251.5z&quot; fill=&quot;#E8C781&quot; sodipodi:nodetypes=&quot;sccccccccccccccsscccccscccccscccccs&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4633&quot; /&gt;&lt;path d=&quot;M306.4,331.9c-2.3-0.1-4.5,1.3-6.2,3.2 c-2.1,2.4-3.7,5.9-4.6,10.1s-0.9,8.2,0,11.6c0.8,3.4,2.7,6.4,5.6,7.4s5.7-0.5,7.8-2.9s3.7-5.9,4.6-10.1s0.9-8.2,0-11.6 c-0.8-3.4-2.7-6.4-5.6-7.4C307.5,332,307,331.9,306.4,331.9z&quot; fill=&quot;#B17549&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path4571&quot; /&gt;&lt;path d=&quot;m 300,163 0,53.7 0,1.3 0.2,0 c 1,3.6 6.2,6.2 12.3,6.2 6.1,0 11.3,-2.6 12.3,-6.2 l 0.2,0 0,-1.3 0,-53.7 -25,0 z&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;ellipse6285&quot; style=&quot;fill:#efca7a;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; /&gt;&lt;ellipse ry=&quot;7.5&quot; rx=&quot;12.5&quot; cy=&quot;160.5&quot; cx=&quot;312.5&quot; id=&quot;path6283&quot; style=&quot;fill:#efca7a;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; /&gt;&lt;path d=&quot;m 340,193 0,23.7 0,1.3 0.2,0 c 1,3.6 6.2,6.2 12.3,6.2 6.1,0 11.3,-2.6 12.3,-6.2 l 0.2,0 0,-1.3 0,-23.7 -25,0 z&quot; sodipodi:nodetypes=&quot;cccccccccc&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;path6288&quot; style=&quot;fill:#ed6498;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; /&gt;&lt;path d=&quot;m 365,190.5 c 0,4.1 -5.6,7.5 -12.5,7.5 -6.9,0 -12.5,-3.4 -12.5,-7.5 0,-4.1 5.6,-7.5 12.5,-7.5 6.9,0 12.5,3.4 12.5,7.5 z&quot; sodipodi:nodetypes=&quot;sssss&quot; inkscape:connector-curvature=&quot;0&quot; id=&quot;ellipse6290&quot; style=&quot;fill:#ed6498;stroke:#ffffff;stroke-width:4;stroke-linejoin:round&quot; /&gt;&lt;/g&gt;&lt;/g&gt;&lt;path id=&quot;circle6682&quot; inkscape:connector-curvature=&quot;0&quot; fill=&quot;#9AD48B&quot; d=&quot;M783.3,423.4c-7.9,0.1-14.7,5.4-16.7,13 c-1.6,6.1,0.2,12.6,4.7,17c-1.5-0.9-3-1.6-4.7-2c-9.3-2.5-18.9,3-21.4,12.4l0,0c-1.2,4.7-0.5,9.7,2.1,13.8c-0.3-0.1-0.5-0.2-0.8-0.3 c-9.3-2.5-18.9,3-21.4,12.4c-0.9,3.4-0.8,7.1,0.4,10.4H796c1.4,0,2.7,0.1,4,0.2v-65.2c-1.9-5.5-6.4-9.6-12-11.1 C786.5,423.6,784.9,423.4,783.3,423.4z&quot; /&gt;&lt;path id=&quot;path6690&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M767.6,473 c-10.9-2.2-12-11.6-12-11.6S765.9,461.5,767.6,473z&quot; /&gt;&lt;linearGradient id=&quot;rect4888_1_&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;857.5627&quot; y1=&quot;737.5707&quot; x2=&quot;908.4745&quot; y2=&quot;737.9244&quot; gradientTransform=&quot;matrix(1 0 0 1 -400.0001 -395)&quot;&gt;&lt;stop offset=&quot;0&quot; style=&quot;stop-color:#D68462&quot; id=&quot;stop107&quot; /&gt;&lt;stop offset=&quot;1&quot; style=&quot;stop-color:#EEAD6E&quot; id=&quot;stop109&quot; /&gt;&lt;/linearGradient&gt;&lt;g id=&quot;g6659&quot; transform=&quot;translate(-282.00006,167.36217)&quot;&gt;&lt;g id=&quot;g6431&quot; transform=&quot;matrix(0.96592583,0.25881905,-0.25881905,0.96592583,494.40387,-139.44197)&quot;&gt;&lt;path id=&quot;circle6433&quot; inkscape:connector-curvature=&quot;0&quot; fill=&quot;#9AD48B&quot; d=&quot;M371.2,326.1c-7.6,2.1-12.8,9-12.8,16.9 c0,0.3,0,0.6,0,0.9c-2.7-1.6-5.7-2.4-8.9-2.4c-9.7,0-17.5,7.8-17.5,17.5c0,6.4,3.5,12.3,9.1,15.3c-6.6,2.7-11,9.1-11,16.2 c0,3.2,0.9,6.3,2.5,9l79.7-21.4c-0.1-1.2-0.3-2.3-0.5-3.4c4.7-3.3,7.5-8.6,7.5-14.3c0-9.7-7.8-17.5-17.5-17.5c-3,0-6,0.8-8.7,2.3 c0.1-0.8,0.2-1.5,0.2-2.3c0-9.7-7.8-17.5-17.5-17.5l0,0C374.3,325.5,372.7,325.7,371.2,326.1L371.2,326.1z&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;path5763-9-4&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M743.3,309.6 c4.8-7-1.5-16.3-2.6-16.5C740.7,293.1,735,298.9,743.3,309.6z&quot; /&gt;&lt;path id=&quot;path5862&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M743.3,309.6 c4.8-7-1.5-16.3-2.6-16.5C740.7,293.1,735,298.9,743.3,309.6z&quot; /&gt;&lt;path id=&quot;path5763-9-9&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M760.3,305.7 c-1.6-8.4,7.9-14.4,8.9-14.1C769.2,291.6,772.1,299.2,760.3,305.7z&quot; /&gt;&lt;path id=&quot;path5763-9-9-2&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M773.6,316.2 c2.8-8.1,14.8-7.7,14.8-7.7S785,318.2,773.6,316.2z&quot; /&gt;&lt;/g&gt;&lt;g id=&quot;g6277&quot; transform=&quot;matrix(0.96592583,-0.25881905,0.25881905,0.96592583,-499.54837,483.99659)&quot;&gt;&lt;g id=&quot;g6589&quot; transform=&quot;matrix(0.96592583,-0.25881905,0.25881905,0.96592583,-133.7187,293.74812)&quot;&gt;&lt;path id=&quot;circle6334-4-9&quot; inkscape:connector-curvature=&quot;0&quot; fill=&quot;#9AD48B&quot; d=&quot;M1143.5,237.3l-8.1,4c2.7,5.4,4.7,12.2,6,19.8 c-1.6,1.5-2.5,3.5-2.5,5.7c0,2.8,1.5,5.4,4,6.7c0.3,5,0.4,10.2,0.1,15.4c-0.3,6.8-1.2,13.7-2.5,20.4l8.2,4.7 c1.8-8.1,2.9-16.5,3.3-24.7c0.3-5.7,0.2-11.4-0.1-16.9c1.6-1.5,2.5-3.5,2.5-5.7c0-2.8-1.5-5.4-3.9-6.7 C1149,251.6,1146.7,243.8,1143.5,237.3z&quot; /&gt;&lt;g id=&quot;g6397&quot; transform=&quot;matrix(-0.66957747,-0.38658074,-0.38658074,0.66957747,1658.8115,392.534)&quot;&gt;&lt;path id=&quot;circle6401&quot; inkscape:connector-curvature=&quot;0&quot; fill=&quot;#B66297&quot; d=&quot;M675.5,142.2c5.5,0,10,4.5,10,10c0,0.5,0,0.9-0.1,1.4 c1.5-0.9,3.3-1.4,5.1-1.4c5.5,0,10,4.5,10,10l0,0c0,2.9-1.3,5.7-3.5,7.6c4.9,0.7,8.5,4.9,8.5,9.9c0,5.5-4.5,10-10,10 c-2.8,0-5.4-1.2-7.3-3.2c-3.5,6.6-10.3,10.7-17.7,10.7c-11,0-20-9-20-20c0-9.7,7-18,16.5-19.7c-1-1.6-1.5-3.4-1.5-5.3 C665.5,146.6,669.9,142.2,675.5,142.2L675.5,142.2z&quot; /&gt;&lt;/g&gt;&lt;/g&gt;&lt;path id=&quot;circle6401-8&quot; inkscape:connector-curvature=&quot;0&quot; fill=&quot;#A85199&quot; d=&quot;M1035.6,242.4c-6.8,0-13.2,0.7-16.4,2.9l0.1,0.9 c1.6,5.1,5.6,9,10.8,10.4c8.2,2.2,16.7-2.7,18.9-10.9l0,0c0.2-0.8,0.4-1.7,0.4-2.5C1045.3,242.8,1040.4,242.4,1035.6,242.4 L1035.6,242.4z&quot; /&gt;&lt;/g&gt;&lt;path id=&quot;path6690-0&quot; inkscape:connector-curvature=&quot;0&quot; sodipodi:nodetypes=&quot;ccc&quot; fill=&quot;#76B478&quot; d=&quot;M784.8,451 c-8.4-7.4-4.6-16-4.6-16S789.1,440.3,784.8,451z&quot; /&gt;&lt;rect id=&quot;rect7053&quot; x=&quot;40&quot; y=&quot;-20&quot; transform=&quot;matrix(0.5 0.866 -0.866 0.5 417.8432 -243.7412)&quot; fill=&quot;none&quot; width=&quot;760&quot; height=&quot;520&quot; /&gt;&lt;/svg&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://c4.staticflickr.com/6/5564/30608112971_123b396403_b.jpg&quot; alt=&quot;screen shot 2016-10-28 at 7 16 31 pm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Access the geocoding API to build geographic leaderboards or use the directions API to lead players through narrow streets to the closest action. Or, like in this example of the Grand Canyon, combine the Mapbox &lt;a href=&quot;https://www.mapbox.com/blog/terrain-rgb/&quot;&gt;elevation layer&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/satellite/&quot;&gt;satellite imagery&lt;/a&gt; into a comprehensive 3d model:&lt;/p&gt;
&lt;p&gt;
&lt;div class=&quot;video&quot; style=&quot;padding-bottom:52%;&quot;&gt;
&lt;iframe src=&quot;https://player.vimeo.com/video/189643890?byline=0&amp;amp;portrait=0&amp;amp;color=ff9933&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;true&quot; mozallowfullscreen=&quot;true&quot; allowfullscreen=&quot;true&quot;&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;We have designed the SDK with flexibility in mind, maximizing convenience while avoiding assumptions about your game. For instance, with only a couple of lines of code, you can convert your character’s location into a human readable name like “Grand Canyon”:&lt;/p&gt;
&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-csharp&quot; data-lang=&quot;csharp&quot;&gt;&lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Geocoder&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;geocoder&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;Geocoder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;Mapbox&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Unity&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;FileSource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;());&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ReverseGeocodeResource&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;reverseGeocode&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ReverseGeocodeResource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GeoCoordinate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;38.897&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;77.036&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;));&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;geocoder&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;geocode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;reverseGeocode&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ReverseGeocodeResponse&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;res&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&amp;gt;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// Use geocoding data at run time, in your game
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;
&lt;p&gt;Games and global mapping data are a powerful combination. We’re excited to open up our new SDK and see what we can build together. This is just the start; if you’re looking to bring location to your game or AR/VR application, we’d love to hear from you!&lt;/p&gt;
&lt;div class=&quot;center space-bottom4 fill-light pad2 round space-top2 clearfix&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mapbox.com/unity&quot;&gt;Sign up&lt;/a&gt; for early access to the Mapbox Unity SDK.&lt;/p&gt;
&lt;a href=&quot;https://www.mapbox.com/unity&quot; class=&quot;button round-big pad1y rcon next pad4x&quot;&gt;Sign up&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Email &lt;a href=&quot;mailto:camilla@mapbox.com&quot;&gt;Camilla Mahon&lt;/a&gt; to talk or meet us this week at &lt;a href=&quot;https://www.mapbox.com/events/Unite-LA-2016/&quot;&gt;Unite LA&lt;/a&gt;.&lt;br /&gt;
Our games team is expanding! Take a look at our &lt;a href=&quot;https://www.mapbox.com/jobs/games/&quot;&gt;open positions&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Mon, 31 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Camilla Mahon</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/mapbox-unity-sdk/</guid>
</item>
<item>
<title>Style compatibility with Mapbox Studio</title>
<link>https://www.mapbox.com/blog/mapbox-studio-style-compatibility/</link>
<description>&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/QOK9BHH.png&quot; alt=&quot;SDK Compatibility - version list&quot; /&gt;&lt;/p&gt;
&lt;p&gt;If you’ve seen us introduce &lt;a href=&quot;https://www.mapbox.com/blog/3d-features-in-mapbox-gl-js/&quot;&gt;3D buildings&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/blog/data-driven-fill-color/&quot;&gt;data-driven styles&lt;/a&gt;, you know that the &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-style-spec/&quot;&gt;Mapbox Style Specification&lt;/a&gt; is moving fast. We’re racing to implement new features across all our SDKs - &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-js/&quot;&gt;Mapbox GL JS&lt;/a&gt;, &lt;a href=&quot;https://www.mapbox.com/ios-sdk/&quot;&gt;Mapbox iOS SDK&lt;/a&gt;, and &lt;a href=&quot;https://www.mapbox.com/android-sdk/&quot;&gt;Mapbox Android SDK&lt;/a&gt;. We want to give you these new features as soon as possible, but we also want to guarantee that your maps work with the code you’ve already deployed. So today we’re adding &lt;strong&gt;compatibility support&lt;/strong&gt; to Mapbox Studio.&lt;/p&gt;
&lt;p&gt;Now you can choose the minimum version of the Mapbox SDKs that you want to support with each map, and Studio will show which features you can use and successfully render. For example, we introduced the &lt;a href=&quot;https://www.mapbox.com/mapbox-gl-style-spec/#paint-line-offset&quot;&gt;line-offset property&lt;/a&gt; with Mapbox GL JS 0.12.0, iOS SDK 3.1.0, and Android SDK 3.0.0.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/0CZPqVO.png&quot; alt=&quot;SDK Compatibility - property tooltip&quot; /&gt;&lt;/p&gt;
&lt;p&gt;You can change the version compatibility of any map at any time. If your map contains unsupported styles, Studio will prompt you and allow you to remove them if you wish.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/dPhSjeb.png&quot; alt=&quot;SDK Compatibility - version picker&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/ZUZ0bOz.png&quot; alt=&quot;SDK Compatibility - mutation warning&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We’ll continue to show all properties in the UI, but those that aren’t supported in your chosen compatibility range will be greyed out as a tantalizing reminder to upgrade your SDK.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/MhNTqST.png&quot; alt=&quot;SDK Compatibility - disabled property&quot; /&gt;&lt;/p&gt;
</description>
<pubDate>Fri, 28 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Scott Andrews</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/mapbox-studio-style-compatibility/</guid>
</item>
<item>
<title>Download your styles, icons, and fonts from Mapbox Studio</title>
<link>https://www.mapbox.com/blog/mapbox-studio-style-archive/</link>
<description>&lt;p&gt;Ever need to tweak an SVG icon in your Mapbox Studio style, but you accidentally deleted it from your hard disk? Today, what goes into your Mapbox Studio style now comes out, including custom fonts and icons. Just click “Download” on any style page to get a ZIP file with your style and its resources.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/RgOMBKE.png&quot; alt=&quot;download style&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/xovWi2F.png&quot; alt=&quot;downloaded style&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Happy mapping.&lt;/p&gt;
</description>
<pubDate>Thu, 27 Oct 2016 08:00:00 -0400</pubDate>
<dc:creator>Scott Andrews</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/mapbox-studio-style-archive/</guid>
</item>
<item>
<title>Global elevation data</title>
<link>https://www.mapbox.com/blog/terrain-rgb/</link>
<description>&lt;p&gt;Our new global elevation layer, Terrain-RGB, is live! Encoded in the Red, Green, and Blue channels of these PNG tiles are raw height values in meters. You can use the elevation data stored within Terrain-RGB for a wide variety of applications both visual and analytical, from styling terrain slope and hillshades to generating 3D terrain for video games.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5727/30483680661_2b1b44cc8f_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;caption center&quot;&gt;Left: raw RGB, Center: decoded to hypsometric tint, Right: decoded to hillshades&lt;/div&gt;
&lt;p&gt;Terrain-RGB uses each color channel as a position in a base-256 numbering system, allowing for 16,777,216 unique values. We’ve mapped these to 0.1 meter height increments, which gives us the vertical precision necessary for cartographic and 3D applications.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use this endpoint to get Terrain-RGB tiles:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token={your-api-token}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Use this equation to decode pixel values to height values:&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;height = -10000 + ((R * 256 * 256 + G * 256 + B) * 0.1)
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;In the following example we’ve used Terrain-RGB to build a dynamic inundation mapping application that visualizes the impact of a rising sea-level. As tiles load, they are decoded and filtered; any pixel under the inundation elevation is colored blue to show areas underwater.&lt;/p&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;480px&quot; frameborder=&quot;0&quot; src=&quot;https://www.mapbox.com/bites/00307/?elev=10#8/38.055/-121.976&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;caption center&quot;&gt;The San Francisco Bay area under 10 meters of water.&lt;/div&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;480px&quot; frameborder=&quot;0&quot; src=&quot;https://www.mapbox.com/bites/00307/?elev=500#8/49.8/-124.45&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;caption center&quot;&gt;Western British Columbia with a Sea Level Rise of 500 meters. While this scenario is obviously dramatic, the landscape patterns that are revealed are striking.&lt;/div&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;480px&quot; frameborder=&quot;0&quot; src=&quot;https://www.mapbox.com/bites/00307/?elev=1#8/29.914/-91.203&quot;&gt;&lt;/iframe&gt;
&lt;div class=&quot;caption center&quot;&gt;The Gulf Coast with a Water Level of 1 meter above Sea Level.&lt;/div&gt;
&lt;p&gt;Elevation brings with it a third dimension. You can use Terrain-RGB to generate 3D meshes and surfaces in your application of choice.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5687/30568340745_5e22d67ff1_b.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;caption center&quot;&gt;3D mesh wireframe in Unity made with Terrain-RGB&lt;/div&gt;
&lt;p&gt;We’ve been having a blast using Terrain-RGB in &lt;a href=&quot;https://unity3d.com/&quot;&gt;Unity&lt;/a&gt;. You can see the new elevation layer in action, recreating the hills of San Francisco, in Camilla’s &lt;a href=&quot;https://www.mapbox.com/blog/drive-your-map/&quot;&gt;“Drive around your map”&lt;/a&gt; post.&lt;/p&gt;
&lt;p&gt;Watch for more on Mapbox + Unity on the blog and at &lt;a href=&quot;https://www.mapbox.com/events/Unite-LA-2016/&quot;&gt;Unite LA&lt;/a&gt; next week! Find us at the conference or drop us a line &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;@Mapbox&lt;/a&gt; to talk more about maps and Unity.&lt;/p&gt;
</description>
<pubDate>Thu, 27 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Matt Greene</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/terrain-rgb/</guid>
</item>
<item>
<title>Track your jetlag with data-driven line-color</title>
<link>https://www.mapbox.com/blog/track-your-jetlag-with-data-driven-line-color/</link>
<description>&lt;p&gt;Mapbox GL JS now supports data-driven styling for line-color, making it even easier to create stunning data visualizations. I decided to explore the capabilities of data-driven line styles by making a map that tracks jetlag on international flights.&lt;/p&gt;
&lt;p&gt;The colors of flight paths are based on the time difference between your flight’s origin and destination: blue if you’re traveling “forward” in time; orange if you’re traveling “back” in time; white if you’re traveling within the same timezone. The brighter the color, the worse the jetlag.&lt;/p&gt;
&lt;p&gt;Here are some of my favorite airports on the map:&lt;/p&gt;
&lt;h2 id=&quot;flights-from-dublin-airport-dub&quot;&gt;Flights from Dublin Airport (DUB)&lt;/h2&gt;
&lt;p&gt;Dublin Airport, an international airport located just east of the North Atlantic Ocean, shows a contrast between long flights to the United States and shorter flights across Europe.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5807/30439885186_737535a46e_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;flights-from-beijing-capital-international-airport-pek&quot;&gt;Flights from Beijing Capital International Airport (PEK)&lt;/h2&gt;
&lt;p&gt;Did you know that there’s only one timezone in China? Domestic flights from PEK won’t jetlag you at all, but long international flights will set you a few hours back, never forward.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5600/30439885086_f424355c15_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;flights-from-dubai-international-airport-dxb&quot;&gt;Flights from Dubai International Airport (DXB)&lt;/h2&gt;
&lt;p&gt;Dubai’s well-connected airport is a central hub for international travel. I was blown away to learn that flights from Dubai to the US West Coast arc around the North Pole— while this seems unusual on a flat map, this is actually the route that these long flights will take!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5548/30476317765_8981923033_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;building-the-map&quot;&gt;Building the map&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://openflights.org/data.html&quot;&gt;Openflights.org&lt;/a&gt; provides a dataset of airport and flight route information across the globe. This dataset includes timezone information, which I used to calculate the number of hours displaced from local time at point A to point B on any route. Mapbox GL JS then sets the appropriate line color based on the time delta property for each flight path. The colors are calculated based on stops:&lt;/p&gt;
&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nx&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;addLayer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;id&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;routes&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;source&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;routes&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;type&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;line&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;paint&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;line-color&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;property&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;time-delta&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;type&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;exponential&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;s1&quot;&gt;&#39;stops&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;-24&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;#ff4e00&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// if flight is 24 hours &#39;backward&#39;, line will be orange&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;-3&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;#eace28&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;0&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;#ffffff&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;3&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;#43aaf7&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;24&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;#1129d3&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// if flight is 24 hours &#39;forward&#39;, line will be blue&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
See how jetlagged you’ll be on flights from your nearest airport by entering an airport code:&lt;/p&gt;
&lt;div class=&quot;contain bleed-section pad4y&quot;&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00300/?embed&quot; class=&quot;fill-grey col12 row12&quot;&gt;&lt;/iframe&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00300/&quot; class=&quot;small center block&quot; target=&quot;_blank&quot; rel=&quot;noreferrer&quot;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Have your own idea for a cool data-driven visualization? &lt;a href=&quot;https://www.mapbox.com/help/gl-dds-ref/&quot;&gt;Learn how to style lines, fills, and extrusions based on data properties using Mapbox GL JS.&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Wed, 26 Oct 2016 08:00:00 -0400</pubDate>
<dc:creator>Dana Sulit</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/track-your-jetlag-with-data-driven-line-color/</guid>
</item>
<item>
<title>Dive into large datasets with 3D shapes in Mapbox GL</title>
<link>https://www.mapbox.com/blog/population-inspector/</link>
<description>&lt;p&gt;Explore America’s population density down to the city block using this new visualization. We had fun using Mapbox GL JS’s &lt;a href=&quot;https://www.mapbox.com/blog/3d-features-in-mapbox-gl-js/&quot;&gt;new 3D features&lt;/a&gt; and &lt;a href=&quot;https://www.mapbox.com/blog/data-driven-fill-color/&quot;&gt;data-driven styling&lt;/a&gt; to show the remarkable concentration of people in areas like New York, where an average of over 27,000 people live in each square mile.&lt;/p&gt;
&lt;div class=&quot;contain bleed-section space-bottom4&quot;&gt;
&lt;div class=&quot;small center block space-bottom1&quot;&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00273&quot;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt; | &lt;a href=&quot;#jumpdown&quot;&gt;&lt;em&gt;Keep reading&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00273&quot; class=&quot;fill-grey col12 row12&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Use the sidebar to find any U.S. city, or toggle between two- and three-dimensional views of the data. Right-click drag (or hold down &lt;code class=&quot;highlighter-rouge&quot;&gt;control&lt;/code&gt;) to tilt and rotate the map. &lt;a href=&quot;https://i.imgur.com/civr6Yk.gif&quot;&gt;On mobile? Tap here to see extrusions for GL JS in action&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div id=&quot;jumpdown&quot;&gt;&lt;/div&gt;
&lt;p&gt;At first glance, these images of Chicago, New Orleans, and Manhattan look like skyscrapers, but those aren’t building heights - these are maps of where people live.&lt;/p&gt;
&lt;p&gt;&lt;address&gt;Chicago&lt;/address&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5686/30235379440_81815b346f_b.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;address&gt;New Orleans&lt;/address&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5637/30416896922_b1edbf7e10_b.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;address&gt;New York&lt;/address&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5781/30235379720_3cf51fc2e6_b.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;3D is uniquely well-suited to this dataset because the height of each shape represents population density, and the volume is proportional to the raw count.&lt;/p&gt;
&lt;h2 id=&quot;how-we-made-the-map&quot;&gt;How we made the map&lt;/h2&gt;
&lt;p&gt;We started with &lt;a href=&quot;https://www.census.gov/geo/maps-data/data/tiger.html&quot;&gt;Census block population counts&lt;/a&gt; and turned them into population densities using &lt;a href=&quot;http://turfjs.org/&quot;&gt;Turf.js&lt;/a&gt;’s area calculation. Then we used &lt;a href=&quot;https://www.mapbox.com/blog/vector-density/&quot;&gt;Tippecanoe&lt;/a&gt; to generate vector tiles from the 17 gigabytes of GeoJSON data, and uploaded those tiles to Mapbox.&lt;/p&gt;
&lt;p&gt;We hooked up the &lt;a href=&quot;https://www.mapbox.com/blog/3d-features-in-mapbox-gl-js/&quot;&gt;new 3D features in Mapbox GL JS&lt;/a&gt; to show census blocks as extrusions, sized by density. To give address-level context for each highlighted block, we used our &lt;a href=&quot;https://www.mapbox.com/geocoding/&quot;&gt;geocoder&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;build-your-own&quot;&gt;Build your own!&lt;/h2&gt;
&lt;p&gt;We would love to see your data-driven maps. If you have something to share, tweet us at &lt;a href=&quot;https://www.twitter.com/mapbox&quot;&gt;@Mapbox&lt;/a&gt;!&lt;/p&gt;
</description>
<pubDate>Mon, 24 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Peter Liu</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/population-inspector/</guid>
</item>
<item>
<title>Mapbox @ IBM World of Watson</title>
<link>https://www.mapbox.com/blog/world-of-watson-2016/</link>
<description>&lt;p&gt;We’re heading to &lt;a href=&quot;http://www-01.ibm.com/software/events/wow/&quot;&gt;IBM World of Watson 2016&lt;/a&gt; in Las Vegas next week!&lt;/p&gt;
&lt;p&gt;IBM and Mapbox are teaming up to change the way analysts interact with data, commuters move through cities, and insurers limit risk. See Mapbox data powering &lt;a href=&quot;https://techcrunch.com/2016/06/16/ibms-watson-makes-a-move-into-self-driving-cars-with-olli-a-minibus-from-local-motors/&quot;&gt;IBM’s autonomous transit platform, Olli&lt;/a&gt;, and get hands on with Mapbox developer tools in IBM Bluemix and DataWorks. At World of Watson, IBM will show off new maps in Cognos and Watson Analytics, The Weather Company apps, Cloudant, and Weather Alerts for Insurance.&lt;/p&gt;
&lt;p&gt;On Monday, Mapbox CEO &lt;a href=&quot;https://www.mapbox.com/about/team/eric-gundersen/&quot;&gt;Eric Gundersen&lt;/a&gt; will jump on stage for a keynote with IBM’s head of business analytics, Marc Altshuller. They’ll preview &lt;a href=&quot;https://www.fastcompany.com/3062635/with-mapbox-deal-ibm-watson-will-know-where-things-are-happening&quot;&gt;a totally new visualization experience for Cognos and Watson Analytics&lt;/a&gt;, with vivid satellite imagery and powerful spatial tools that make maps a canvas for querying data.&lt;/p&gt;
&lt;p&gt;Spot emerging product markets using aggregated transaction data, predict real estate prices using pedestrian traffic, and alert insurance policyholders to dangerous weather and fire events before they happen. In short, IBM is turning dashboards and reports into actionable insights.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.imgur.com/1vVJXkl.gif&quot; alt=&quot;gif&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cognos and Watson Analytics users can leverage real-time data, like &lt;a href=&quot;https://www.mapbox.com/bites/00288/&quot;&gt;this example of wildfire extents for property damage&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Drop us a line &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;@Mapbox&lt;/a&gt; if you’ll be at the conference, and find us in person to talk about &lt;a href=&quot;https://www.mapbox.com/industries/business-intelligence/&quot;&gt;maps for business intelligence&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Fri, 21 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Hannah Judge</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/world-of-watson-2016/</guid>
</item>
<item>
<title>Welcome Bersabel!</title>
<link>https://www.mapbox.com/blog/welcome-bersabel/</link>
<description>&lt;p&gt;&lt;a href=&quot;https://www.mapbox.com/about/team/bersabel-tadesse/&quot;&gt;Bersabel Tadesse&lt;/a&gt; has joined the Mapbox team in San Francisco! Bersabel will be working on business strategy, focusing on mobile, automotive, and gaming industries.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5717/30419670136_2007db9b80_b.jpg&quot; alt=&quot;Bersabel&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Bersabel joins Mapbox from Hall Capital Partners where she worked in private equity &amp;amp; venture capital research. In her spare time, she runs &lt;a href=&quot;https://birthplacecoffee.com/&quot;&gt;Birthplace Coffee Co.&lt;/a&gt;, a startup that donates 50% of its profits to community projects in Ethiopia.&lt;/p&gt;
&lt;p&gt;Welcome to the team, Bersabel!&lt;/p&gt;
</description>
<pubDate>Thu, 20 Oct 2016 14:00:00 -0400</pubDate>
<dc:creator>Max Sirenko</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/welcome-bersabel/</guid>
</item>
<item>
<title>Custom interfaces for geocoding address data</title>
<link>https://www.mapbox.com/blog/drag-drop-geocode/</link>
<description>&lt;p&gt;When it comes to displaying location data on a map, it’s common to have address data but not the geographic values required to display them. You can use the &lt;a href=&quot;https://www.mapbox.com/geocoding/&quot;&gt;Mapbox Geocoding API&lt;/a&gt; to translate addresses into longitude &amp;amp; latitude data and vice versa. Every Mapbox account includes temporary geocodes you can use to display locations or orient a map.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.mapbox.com/enterprise/&quot;&gt;Mapbox Enterprise&lt;/a&gt; customers have the option to add permanent geocodes, which they can use anywhere, join with other data, and store forever. Permanent geocoding helps logistics companies associate customers with delivery addresses or travel sites curate points of interest.&lt;/p&gt;
&lt;p&gt;I created a widget to drag and drop address data on a page, choose fields to target and visualize the result. It connects directly to our &lt;a href=&quot;https://www.mapbox.com/api-documentation/#geocoding&quot;&gt;Geocoding API&lt;/a&gt;, makes parallel requests to optimize performance, and Mapbox Enterprise customers can download the geocoded result.&lt;/p&gt;
&lt;div class=&quot;video space-bottom4&quot; style=&quot;padding-bottom:64%;&quot;&gt;
&lt;iframe src=&quot;//player.vimeo.com/video/185825534?autoplay=1&amp;amp;loop=1&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;space-bottom2 clearfix&quot;&gt;
&lt;a href=&quot;https://www.mapbox.com/bites/00306/&quot; class=&quot;button margin3 col6&quot;&gt;Try it yourself&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;While the Geocoding task is exposed in this interface it could alternatively be a completely customized experience where obtaining geocoded information happens behind the scenes and displaying address data on a map &lt;em&gt;just works&lt;/em&gt; for an end user.&lt;/p&gt;
&lt;p&gt;Have questions about how to use the Mapbox Geocoding API? Drop a line to &lt;a href=&quot;mailto:help@mapbox.com&quot;&gt;help@mapbox.com&lt;/a&gt;. Want to add permanent geocoding to your Mapbox Enterprise account? Get in touch at &lt;a href=&quot;mailto:enterprise@mapbox.com&quot;&gt;enterprise@mapbox.com&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Wed, 19 Oct 2016 00:00:00 -0400</pubDate>
<dc:creator>Tristen Brown</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/drag-drop-geocode/</guid>
</item>
<item>
<title>Shading and lighting 3D features in Mapbox GL JS</title>
<link>https://www.mapbox.com/blog/shading-lighting-3d-features/</link>
<description>&lt;p&gt;Last week &lt;a href=&quot;/blog/3d-features-in-mapbox-gl-js/&quot;&gt;we launched extrusion fill properties and light properties in Mapbox GL JS&lt;/a&gt; that enable exciting 3D map features like &lt;a href=&quot;/blog/mapping-3d-buildings/&quot;&gt;buildings&lt;/a&gt; as well as 3D data visualizations.&lt;/p&gt;
&lt;p&gt;3D features require shading to create depth, unlike 2D features where colors are typically flat. The appearance of shading on a 3D feature depends on how the surface color interacts with lighting in the map scene. We designed the default shading behavior specifically to create beautiful 3D features that complement the rest of your map.&lt;/p&gt;
&lt;p&gt;Regardless of what color you choose for your 3D features, it’s important to have a comfortable and legible amount of color contrast to show depth. We calibrated the contrast so that there is a narrower range of values for highlights/lowlights with lower light intensities and lighter surface colors:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/8/7520/29698962303_99c5672a09_o.jpg&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://c2.staticflickr.com/6/5627/30244167381_f5decf8c9f_o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pale yellow buildings with a low light intensity, compared to darker purple buildings with a higher light intensity.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We added a subtle gradient along the height (z-axis) of 3D features, to help delineate visually overlapping features – especially useful for dense feature sets like buildings in cities:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5490/30223931831_c3a60896c3_o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The darkest shading is slightly tinted with the &lt;a href=&quot;https://en.wikipedia.org/wiki/Complementary_colors&quot;&gt;complementary (opposite) color&lt;/a&gt; to produce richer shades and more visual depth:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5528/30209404522_3f93e1fbe6_o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Fill patterns for extruded features allow for some interesting effects:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://c2.staticflickr.com/6/5765/30033971370_15af330561_o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To give users more cartographic flexibility, we added several light properties that control the lighting of 3D features: light color, intensity, position, and anchor. With these properties, you can create a wide range of interesting and useful styles, such as this sunrise-to-sunset view:&lt;/p&gt;
&lt;div class=&quot;video space-bottom2&quot; style=&quot;padding-bottom:60%;&quot;&gt;
&lt;iframe src=&quot;https://player.vimeo.com/video/187423227?autoplay=1&amp;amp;loop=1&amp;amp;title=0&amp;amp;byline=0&amp;amp;portrait=0&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; webkitallowfullscreen=&quot;&quot; mozallowfullscreen=&quot;&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Sunrise-to-sunset view created with a strong intensity light that varies from red to white, changes position to mimic the sun, and is anchored to the map (i.e. the light rotates with the map).&lt;/em&gt;&lt;/p&gt;
&lt;p class=&quot;hide-mobile&quot;&gt;Want to play with lighting 3D buildings? Check out Lauren&#39;s demo:&lt;/p&gt;
&lt;div class=&quot;contain bleed-section space-bottom2 hide-mobile&quot;&gt;
&lt;iframe src=&quot;https://www.mapbox.com/bites/00295/light.html?embed&quot; class=&quot;fill-grey col12 row13&quot;&gt;&lt;/iframe&gt;
&lt;!-- &lt;a href=&#39;https://www.mapbox.com/bites/00295/light.html&#39; class=&#39;small center block&#39; target=&#39;_blank&#39; rel=&#39;noreferrer&#39;&gt;&lt;em&gt;View full-screen demo&lt;/em&gt;&lt;/a&gt; --&gt;
&lt;/div&gt;
&lt;p class=&quot;caption hide-mobile&quot;&gt;Hold control while clicking and dragging to tilt and rotate the map.&lt;/p&gt;
</description>
<pubDate>Mon, 17 Oct 2016 14:45:00 -0400</pubDate>
<dc:creator>Nicki Dlugash</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/shading-lighting-3d-features/</guid>
</item>
<item>
<title>Say hello at NACIS 2016!</title>
<link>https://www.mapbox.com/blog/nacis-2016/</link>
<description>&lt;p&gt;&lt;img src=&quot;https://c1.staticflickr.com/9/8415/30272292292_8bcbb352e6_h.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We arrive tomorrow in Colorado Springs for the annual meeting of the &lt;a href=&quot;https://nacis.org/events/2016-nacis-annual-meeting/&quot;&gt;North American Cartographic Information Society (NACIS)&lt;/a&gt;! We can’t wait to connect with fellow cartographers, learn new things, and share some of what we’ve been up to. &lt;a href=&quot;https://www.mapbox.com/events/nacis-2016/&quot;&gt;Find us&lt;/a&gt; throughout the week or swing by one of our presentations:&lt;/p&gt;
&lt;h5 id=&quot;wednesday-october-19th&quot;&gt;Wednesday, October 19th:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;9:00AM&lt;/strong&gt; – To kick off Wednesday’s Practical Cartography Day, &lt;a href=&quot;https://www.mapbox.com/about/team/nathaniel-slaughter/&quot;&gt;Nathaniel Slaughter&lt;/a&gt; will present on iconographic processes and design in &lt;a href=&quot;https://nacis2016.sched.org/event/7JLa/practical-cartography-day-early-morning-session&quot;&gt;“Maki 3.0: open sourced icons for maps”&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10:45AM&lt;/strong&gt;&lt;a href=&quot;https://www.mapbox.com/about/team/molly-lloyd/&quot;&gt;Molly Lloyd&lt;/a&gt; will demonstrate data driven styling uses for dynamic data visualizations and base map design in &lt;a href=&quot;https://nacis2016.sched.org/event/7JLf/practical-cartography-day-late-morning-session&quot;&gt;“Data Driven Styling for GL Mapping”&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;thursday-october-20th&quot;&gt;Thursday, October 20th:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;9:00AM&lt;/strong&gt;&lt;a href=&quot;https://www.mapbox.com/about/team/sam-matthews/&quot;&gt;Sam Matthews&lt;/a&gt; will walk through ways we’ve increased speed and performance for GL-based maps in &lt;a href=&quot;https://nacis2016.sched.org/event/7Lj5/design-in-web-cartography&quot;&gt;“Maps are Fast and So Can You”&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10:40AM&lt;/strong&gt; – NACIS veteran &lt;a href=&quot;https://www.mapbox.com/about/team/lyzi-diamond/&quot;&gt;Lyzi Diamond&lt;/a&gt; will discuss new ideas for teaching geospatial technology in universities during &lt;a href=&quot;https://nacis2016.sched.org/event/7LjD/maps-and-learning&quot;&gt;“From button pushing to problem solving: modern geospatial technology in the classroom”&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h5 id=&quot;friday-october-21st&quot;&gt;Friday, October 21st:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;10:40AM&lt;/strong&gt;&lt;a href=&quot;https://www.mapbox.com/about/team/konstantin-kafer/&quot;&gt;Konstantin Käfer&lt;/a&gt; will dive into DEM data sourcing, processing, and distribution, as well as give a sneak peek into the future of terrain on Mapbox GL during &lt;a href=&quot;https://nacis2016.sched.org/event/7Lmw/dynamic-workflows&quot;&gt;“Dynamic Terrain Visualization”&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2:00PM&lt;/strong&gt;&lt;a href=&quot;https://www.mapbox.com/about/team/amy-lee-walton/&quot;&gt;Amy Lee Walton&lt;/a&gt; will discuss our ongoing efforts to integrate testing into the map design process during
&lt;a href=&quot;https://nacis2016.sched.org/event/7Ln0/making-maps-useful&quot;&gt;“Software Testing: How “Tests” Can Improve Map Design”&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Can’t wait to see you there! Be sure to reach out on &lt;a href=&quot;https://twitter.com/mapbox&quot;&gt;Twitter&lt;/a&gt;, or &lt;a href=&quot;https://www.mapbox.com/events/nacis-2016/&quot;&gt;find us in person&lt;/a&gt; if you’d like to talk!&lt;/p&gt;
</description>
<pubDate>Mon, 17 Oct 2016 12:00:00 -0400</pubDate>
<dc:creator>Andreas Viglakis</dc:creator>
<guid isPermaLink="true">https://www.mapbox.com/blog/nacis-2016/</guid>
</item>
</channel>
</rss>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment