User:DTankersley (WMF)/misc/how to: embedded maps

 {     "type": "Feature", "properties": { "marker-symbol": "town-hall", "marker-color": "46ea5f", "marker-size": "medium", "title": "The White House"}, "geometry": { "type": "Point", "coordinates": [-77.0365, 38.8977] } }

Let's add interactive maps for a richer experience using mapframe
This is a how-to guide for creating simple but beautiful maps that use OpenStreetMap data and Wikimedia tile images and are embedded within a page. We've recently created a method to add maps to articles and wanted to provide a step-by-step guide for new users. This new method is called mapframe and more detailed information about the Maps project can be found here.

Find an article to update with a map
 * Let’s find an article that the addition of the map would make it just that much richer in content, an easy article would be the city that you live in, or a notable location nearby. For purposes of this guide and for the easy map samples, we'll use the small but very scenic town of Estes Park located in the state of Colorado in the USA.

Find the coordinates (latitude and longitude) for your map
 * The article for Estes Park has coordinates (latitude and longitude) in the information section - 40°22′38″N 105°31′32″W - this makes it easy for us to add in a mapframe, in which to display an interactive map using Wikimedia tiles and map data from OSM.


 * If you click on the coordinates on the page, a new page is opened up that contains the GeoHack information for Estes Park. We’ll need to copy the coordinates that are in decimal degrees as displayed: 40.377117, -105.525514.

Add an embedded map to your page
 * Now that you know where you want to add a map and have the coordinates, it's time to have fun adding an embedded map to your articles or media.

Additional information about your interactive map
 * * Each map that is embedded on the page, when the map is clicked on, will open in a new tab (or window).
 * * The map that is displayed within the page is not interactive - it is a static image to allow for fast page loading.
 * * Once a user clicks on the map - it will be fully interactive; it can be zoomed in and out or panned to view different areas.
 * * Each interactive map will have a caption below the map that will contain (by default) the center of the map coordinates or custom text.
 * * There is a more details button that displays additional ways to display the map: satellite, topological, terrain, aerial or other external service providers (as available). The more details button is meant as a replacement for the GeoHack templated map service.
 * * Each map will have a attribute line with a link to the OpenStreetMap copyright and license as well as a link to the Wikimedia maps terms of use and licensing page.
 * * The interactive map can be closed by clicking the X<tt> in the top right hand corner of the map, clicking your browser's back button (if the map opened in your existing browser tab) or closing the tab (if the map opened in a new tab or window).

Easy embedded map samples
<mapframe latitude="40.377117" longitude="-105.525514" text="A custom zoom level map of Estes Park, CO" zoom="15" width="300" height="350" /> Just a map:
 * The easiest way to add a map for Estes Park is adding the following code in the page. This will display a static map that, when clicked, will open up map in your browser.



A map with custom text and setting the zoom level for the map, once it's opened:
 * Let's now set a zoom level for the interactive map, since you might want to display your map closer into the city:



Cool but complex things you can do with a map
Add a custom icon marker, article link and image to your map: <mapframe text="Colorado State Capital with a town hall marker, article link and image" latitude="39.73939" longitude="-104.98491" zoom="17" width="300" height="350"> { "type": "Feature", "properties": { "marker-symbol": "town-hall", "marker-color": "46ea5f", "marker-size": "medium", "title": "Colorado State Capital", "description": ""}, "geometry": { "type": "Point", "coordinates": [-104.98485267162323, 39.73928364167763] }}

Add a Wikidata ID to highlight a state (geoshape):

Add a Wikidata ID to mask everything but a state (geomask):

Add a number to a map marker:

Add a letter to a map marker:

Add several map markers in different sizes using a feature collection: <mapframe text="Denver Amusements" latitude="39.74956567318853" longitude="-105.01247406005858" zoom="14" width="300" height="350"> {"type": "FeatureCollection", "features": }

Add groups of different colored map markers and different counters: <mapframe text="Add groups of different colored markers and different counters" zoom="13" longitude="-122.39902496337889" latitude="37.80151060070086" width="300" height="350"> { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "marker-symbol": "-number", "marker-color": "302060" }, "geometry": { "type": "Point", "coordinates": [ -122.41816520690917, 37.79097260220947 ] }}, { "type": "Feature", "properties": { "marker-symbol": "-number", "marker-color": "302060" },     "geometry": { "type": "Point", "coordinates": [ -122.40786552429199, 37.799654055191525 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number", "marker-color": "302060" },     "geometry": { "type": "Point", "coordinates": [ -122.40185737609865, 37.796262984039544 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number", "marker-color": "302060" },     "geometry": { "type": "Point", "coordinates": [ -122.38743782043457, 37.80535070427755 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number", "marker-color": "302060" },     "geometry": { "type": "Point", "coordinates": [ -122.38005638122557, 37.795449103799726 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-letter", "marker-color": "208020" },     "geometry": { "type": "Point", "coordinates": [ -122.40941047668457, 37.81850557172186 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-letter", "marker-color": "208020" },     "geometry": { "type": "Point", "coordinates": [ -122.40357398986815, 37.81280993744834 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-letter", "marker-color": "208020" },     "geometry": { "type": "Point", "coordinates": [ -122.39842414855956, 37.8071138637568 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number-bar", "marker-color": "f01080" },     "geometry": { "type": "Point", "coordinates": [ -122.41181373596191, 37.78595317184089 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number-bar", "marker-color": "f01080" },     "geometry": { "type": "Point", "coordinates": [ -122.39542007446289, 37.787674400057654 ] }}, {     "type": "Feature", "properties": { "marker-symbol": "-number-bar", "marker-color": "f01080" },     "geometry": { "type": "Point", "coordinates": [ -122.38649368286131, 37.78401144262929 ] }} ] }

= Good things to know about using embedded maps =
 * Map zoom levels are between 0 (zero) and 18 (eighteen).
 * Map markers can use any color that has a RBG value (a quick internet search of "rgb color picker" will show several options).
 * Markers can be one of three different sizes: small, medium or large.
 * All available speciality icons can be viewed at Maki Icons.
 * If you are creating maps on Wikivoyage, it might be a good idea to use Groups.
 * If you want to learn more about adding external data to your map, this is a good place to start.

= Important notes =
 * Embedded maps are currently only available on certain projects - MediaWiki and WikiVoyage.
 * Embedded maps are currently only available on Russian, Hebrew and Catalan Wikipedias.
 * When using <tt>mapframe<tt>, there will always be a static map image in the article page
 * Clicking on the static map image will open up the interactive map in your existing tab, or - right click on the map image and open in a new tab or window.

=See also =
 * Click here for step-by-step instructions on adding a map link to your page
 * Click here for instructions on adding a map using Visual Editor and the Map template
 * Click here for more information on the Maps project
 * Click here to find out more about Kartographer
 * Click here to find our more about the tile server implementation (Kartotherian)
 * Terms of use and where the map data comes from