CINXE.COM

Mercator - OpenStreetMap Wiki

<!DOCTYPE html> <html class="client-nojs" lang="en" dir="ltr"> <head> <meta charset="UTF-8"/> <title>Mercator - OpenStreetMap Wiki</title> <script>document.documentElement.className="client-js";RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"257983c63f3e947a96e41b5c","wgCSPNonce":false,"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Mercator","wgTitle":"Mercator","wgCurRevisionId":2745139,"wgRevisionId":2745139,"wgArticleId":4278,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Pages using deprecated source tags","Pages with syntax highlighting errors","Pages unavailable in German","Pages unavailable in Spanish","Pages unavailable in French","Pages unavailable in Italian","Pages unavailable in Dutch","Pages unavailable in Russian","Pages unavailable in Japanese","Map projections"], "wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Mercator","wgRelevantArticleId":4278,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgMFDisplayWikibaseDescriptions":{"search":false,"nearby":false,"watchlist":false,"tagline":false},"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgULSAcceptLanguageList":[],"wgULSCurrentAutonym":"English","wgVector2022PreviewPages":[],"wgEditSubmitButtonLabelPublish":false,"wgULSPosition":"personal","wgULSisCompactLinksEnabled":true};RLSTATE={"site.styles":"ready","user.styles":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.styles.legacy":"ready","ext.OsmWikibase-all":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.pt":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["site","mediawiki.page.ready","mediawiki.toc", "skins.vector.legacy.js","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.gadget.taginfo","ext.gadget.dataitemlinks","ext.gadget.maps","ext.uls.compactlinks","ext.uls.interface"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement("user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.OsmWikibase-all%2Cpygments%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"/> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""/> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector"/> <noscript><link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=noscript&amp;only=styles&amp;skin=vector"/></noscript> <meta name="generator" content="MediaWiki 1.39.11"/> <meta name="format-detection" content="telephone=no"/> <meta name="viewport" content="width=1000"/> <link rel="icon" href="/favicon.ico"/> <link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="OpenStreetMap Wiki (en)"/> <link rel="EditURI" type="application/rsd+xml" href="//wiki.openstreetmap.org/w/api.php?action=rsd"/> <link rel="license" href="/wiki/Wiki_content_license"/> <link rel="alternate" type="application/atom+xml" title="OpenStreetMap Wiki Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"/> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Mercator rootpage-Mercator skin-vector action-view skin-vector-legacy vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-language-alert-in-sidebar-disabled vector-feature-sticky-header-disabled vector-feature-sticky-header-edit-disabled vector-feature-table-of-contents-disabled vector-feature-visual-enhancement-next-disabled"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"></div> <div class="mw-indicators"> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Mercator</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">From OpenStreetMap Wiki</div> <div id="contentSub"></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Jump to navigation</a> <a class="mw-jump-link" href="#searchInput">Jump to search</a> <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-parser-output"><div class="languages noprint navigation-not-searchable" style="clear:both;font-size:95%;line-height:normal;margin:2px 0;border:1px solid #AAA" dir="ltr"> <div style="background:#EEE;padding:1px"> <div class="hlist" style="float:right;margin-left:.25em;font-weight:normal;font-size:x-small"> <ul><li><bdi class="noprint plainlinks purgelink"><a rel="nofollow" class="external text" href="//wiki.openstreetmap.org/w/index.php?title=Mercator&amp;action=purge"><span title="Purge this page"><span style="margin:0 2px"><img alt="" src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Octicons-sync.svg/10px-Octicons-sync.svg.png" decoding="async" width="10" height="13" srcset="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Octicons-sync.svg/15px-Octicons-sync.svg.png 1.5x, https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Octicons-sync.svg/20px-Octicons-sync.svg.png 2x" /></span>Purge</span></a></bdi></li> <li><a href="/wiki/Wiki_Translation" title="Wiki Translation">Help</a></li></ul> </div> <div style="font-weight:bold;max-height:10000000px;text-align:center"><bdi style="font-style:italic">Mercator</bdi> - Other languages</div> </div> <div id="Languages" class="LanguageBar" data-vector-language-button-label="$1 languages" style="max-height:10000000px;padding:0 .25em"> <div class="hlist hlist-with-seps"><li><span dir="auto" lang="af"><a href="/w/index.php?title=Af:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Af:Mercator (page does not exist)">&#160;Afrikaans&#160;</a></span></li> <li><span dir="auto" lang="ast"><a href="/w/index.php?title=Ast:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ast:Mercator (page does not exist)">&#160;asturianu&#160;</a></span></li> <li><span dir="auto" lang="az"><a href="/w/index.php?title=Az:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Az:Mercator (page does not exist)">&#160;azərbaycanca&#160;</a></span></li> <li><span dir="auto" lang="id"><a href="/w/index.php?title=Id:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Id:Mercator (page does not exist)">&#160;Bahasa Indonesia&#160;</a></span></li> <li><span dir="auto" lang="ms"><a href="/w/index.php?title=Ms:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ms:Mercator (page does not exist)">&#160;Bahasa Melayu&#160;</a></span></li> <li><span dir="auto" lang="bs"><a href="/w/index.php?title=Bs:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Bs:Mercator (page does not exist)">&#160;bosanski&#160;</a></span></li> <li><span dir="auto" lang="br"><a href="/w/index.php?title=Br:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Br:Mercator (page does not exist)">&#160;brezhoneg&#160;</a></span></li> <li><span dir="auto" lang="ca"><a href="/w/index.php?title=Ca:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ca:Mercator (page does not exist)">&#160;català&#160;</a></span></li> <li><span dir="auto" lang="cs"><a href="/w/index.php?title=Cs:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Cs:Mercator (page does not exist)">&#160;čeština&#160;</a></span></li> <li><span dir="auto" lang="cnr"><a href="/w/index.php?title=Cnr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Cnr:Mercator (page does not exist)">&#160;Crnogorski&#160;</a></span></li> <li><span dir="auto" lang="da"><a href="/w/index.php?title=Da:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Da:Mercator (page does not exist)">&#160;dansk&#160;</a></span></li> <li><span dir="auto" lang="de"><a href="/w/index.php?title=DE:Mercator&amp;action=edit&amp;redlink=1" class="new" title="DE:Mercator (page does not exist)">&#160;Deutsch&#160;</a></span></li> <li><span dir="auto" lang="et"><a href="/w/index.php?title=Et:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Et:Mercator (page does not exist)">&#160;eesti&#160;</a></span></li> <li><span dir="auto" lang="en"><a class="mw-selflink selflink">&#160;English&#160;</a></span></li> <li><span dir="auto" lang="es"><a href="/w/index.php?title=ES:Mercator&amp;action=edit&amp;redlink=1" class="new" title="ES:Mercator (page does not exist)">&#160;español&#160;</a></span></li> <li><span dir="auto" lang="eo"><a href="/w/index.php?title=Eo:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Eo:Mercator (page does not exist)">&#160;Esperanto&#160;</a></span></li> <li><span dir="auto" lang="eu"><a href="/w/index.php?title=Eu:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Eu:Mercator (page does not exist)">&#160;euskara&#160;</a></span></li> <li><span dir="auto" lang="fr"><a href="/w/index.php?title=FR:Mercator&amp;action=edit&amp;redlink=1" class="new" title="FR:Mercator (page does not exist)">&#160;français&#160;</a></span></li> <li><span dir="auto" lang="fy"><a href="/w/index.php?title=Fy:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Fy:Mercator (page does not exist)">&#160;Frysk&#160;</a></span></li> <li><span dir="auto" lang="gd"><a href="/w/index.php?title=Gd:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Gd:Mercator (page does not exist)">&#160;Gàidhlig&#160;</a></span></li> <li><span dir="auto" lang="gl"><a href="/w/index.php?title=Gl:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Gl:Mercator (page does not exist)">&#160;galego&#160;</a></span></li> <li><span dir="auto" lang="hr"><a href="/w/index.php?title=Hr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Hr:Mercator (page does not exist)">&#160;hrvatski&#160;</a></span></li> <li><span dir="auto" lang="io"><a href="/w/index.php?title=Io:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Io:Mercator (page does not exist)">&#160;Ido&#160;</a></span></li> <li><span dir="auto" lang="ia"><a href="/w/index.php?title=Ia:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ia:Mercator (page does not exist)">&#160;interlingua&#160;</a></span></li> <li><span dir="auto" lang="is"><a href="/w/index.php?title=Is:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Is:Mercator (page does not exist)">&#160;íslenska&#160;</a></span></li> <li><span dir="auto" lang="it"><a href="/w/index.php?title=IT:Mercator&amp;action=edit&amp;redlink=1" class="new" title="IT:Mercator (page does not exist)">&#160;italiano&#160;</a></span></li> <li><span dir="auto" lang="ht"><a href="/w/index.php?title=Ht:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ht:Mercator (page does not exist)">&#160;Kreyòl ayisyen&#160;</a></span></li> <li><span dir="auto" lang="gcf"><a href="/w/index.php?title=Gcf:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Gcf:Mercator (page does not exist)">&#160;kréyòl gwadloupéyen&#160;</a></span></li> <li><span dir="auto" lang="ku"><a href="/w/index.php?title=Ku:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ku:Mercator (page does not exist)">&#160;kurdî&#160;</a></span></li> <li><span dir="auto" lang="lv"><a href="/w/index.php?title=Lv:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Lv:Mercator (page does not exist)">&#160;latviešu&#160;</a></span></li> <li><span dir="auto" lang="lb"><a href="/w/index.php?title=Lb:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Lb:Mercator (page does not exist)">&#160;Lëtzebuergesch&#160;</a></span></li> <li><span dir="auto" lang="lt"><a href="/w/index.php?title=Lt:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Lt:Mercator (page does not exist)">&#160;lietuvių&#160;</a></span></li> <li><span dir="auto" lang="hu"><a href="/w/index.php?title=Hu:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Hu:Mercator (page does not exist)">&#160;magyar&#160;</a></span></li> <li><span dir="auto" lang="nl"><a href="/w/index.php?title=NL:Mercator&amp;action=edit&amp;redlink=1" class="new" title="NL:Mercator (page does not exist)">&#160;Nederlands&#160;</a></span></li> <li><span dir="auto" lang="no"><a href="/w/index.php?title=No:Mercator&amp;action=edit&amp;redlink=1" class="new" title="No:Mercator (page does not exist)">&#160;norsk&#160;</a></span></li> <li><span dir="auto" lang="nn"><a href="/w/index.php?title=Nn:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Nn:Mercator (page does not exist)">&#160;norsk nynorsk&#160;</a></span></li> <li><span dir="auto" lang="oc"><a href="/w/index.php?title=Oc:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Oc:Mercator (page does not exist)">&#160;occitan&#160;</a></span></li> <li><span dir="auto" lang="pl"><a href="/w/index.php?title=Pl:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Pl:Mercator (page does not exist)">&#160;polski&#160;</a></span></li> <li><span dir="auto" lang="pt"><a href="/w/index.php?title=Pt:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Pt:Mercator (page does not exist)">&#160;português&#160;</a></span></li> <li><span dir="auto" lang="ro"><a href="/w/index.php?title=Ro:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ro:Mercator (page does not exist)">&#160;română&#160;</a></span></li> <li><span dir="auto" lang="sc"><a href="/w/index.php?title=Sc:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sc:Mercator (page does not exist)">&#160;sardu&#160;</a></span></li> <li><span dir="auto" lang="sq"><a href="/w/index.php?title=Sq:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sq:Mercator (page does not exist)">&#160;shqip&#160;</a></span></li> <li><span dir="auto" lang="sk"><a href="/w/index.php?title=Sk:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sk:Mercator (page does not exist)">&#160;slovenčina&#160;</a></span></li> <li><span dir="auto" lang="sl"><a href="/w/index.php?title=Sl:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sl:Mercator (page does not exist)">&#160;slovenščina&#160;</a></span></li> <li><span dir="auto" lang="sr-latn"><a href="/w/index.php?title=Sr-latn:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sr-latn:Mercator (page does not exist)">&#160;srpski (latinica)&#160;</a></span></li> <li><span dir="auto" lang="fi"><a href="/w/index.php?title=Fi:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Fi:Mercator (page does not exist)">&#160;suomi&#160;</a></span></li> <li><span dir="auto" lang="sv"><a href="/w/index.php?title=Sv:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sv:Mercator (page does not exist)">&#160;svenska&#160;</a></span></li> <li><span dir="auto" lang="tl"><a href="/w/index.php?title=Tl:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Tl:Mercator (page does not exist)">&#160;Tagalog&#160;</a></span></li> <li><span dir="auto" lang="vi"><a href="/w/index.php?title=Vi:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Vi:Mercator (page does not exist)">&#160;Tiếng Việt&#160;</a></span></li> <li><span dir="auto" lang="tr"><a href="/w/index.php?title=Tr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Tr:Mercator (page does not exist)">&#160;Türkçe&#160;</a></span></li> <li><span dir="auto" lang="diq"><a href="/w/index.php?title=Diq:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Diq:Mercator (page does not exist)">&#160;Zazaki&#160;</a></span></li> <li><span dir="auto" lang="el"><a href="/w/index.php?title=El:Mercator&amp;action=edit&amp;redlink=1" class="new" title="El:Mercator (page does not exist)">&#160;Ελληνικά&#160;</a></span></li> <li><span dir="auto" lang="be"><a href="/w/index.php?title=Be:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Be:Mercator (page does not exist)">&#160;беларуская&#160;</a></span></li> <li><span dir="auto" lang="bg"><a href="/w/index.php?title=Bg:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Bg:Mercator (page does not exist)">&#160;български&#160;</a></span></li> <li><span dir="auto" lang="mk"><a href="/w/index.php?title=Mk:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Mk:Mercator (page does not exist)">&#160;македонски&#160;</a></span></li> <li><span dir="auto" lang="mn"><a href="/w/index.php?title=Mn:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Mn:Mercator (page does not exist)">&#160;монгол&#160;</a></span></li> <li><span dir="auto" lang="ru"><a href="/w/index.php?title=RU:Mercator&amp;action=edit&amp;redlink=1" class="new" title="RU:Mercator (page does not exist)">&#160;русский&#160;</a></span></li> <li><span dir="auto" lang="sr"><a href="/w/index.php?title=Sr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Sr:Mercator (page does not exist)">&#160;српски / srpski&#160;</a></span></li> <li><span dir="auto" lang="uk"><a href="/w/index.php?title=Uk:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Uk:Mercator (page does not exist)">&#160;українська&#160;</a></span></li> <li><span dir="auto" lang="hy"><a href="/w/index.php?title=Hy:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Hy:Mercator (page does not exist)">&#160;հայերեն&#160;</a></span></li> <li><span dir="auto" lang="he"><a href="/w/index.php?title=He:Mercator&amp;action=edit&amp;redlink=1" class="new" title="He:Mercator (page does not exist)">&#160;עברית&#160;</a></span></li> <li><span dir="auto" lang="ar"><a href="/w/index.php?title=Ar:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ar:Mercator (page does not exist)">&#160;العربية&#160;</a></span></li> <li><span dir="auto" lang="skr"><a href="/w/index.php?title=Skr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Skr:Mercator (page does not exist)">&#160;سرائیکی&#160;</a></span></li> <li><span dir="auto" lang="fa"><a href="/w/index.php?title=Fa:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Fa:Mercator (page does not exist)">&#160;فارسی&#160;</a></span></li> <li><span dir="auto" lang="pnb"><a href="/w/index.php?title=Pnb:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Pnb:Mercator (page does not exist)">&#160;پنجابی&#160;</a></span></li> <li><span dir="auto" lang="ps"><a href="/w/index.php?title=Ps:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ps:Mercator (page does not exist)">&#160;پښتو&#160;</a></span></li> <li><span dir="auto" lang="ne"><a href="/w/index.php?title=Ne:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ne:Mercator (page does not exist)">&#160;नेपाली&#160;</a></span></li> <li><span dir="auto" lang="mr"><a href="/w/index.php?title=Mr:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Mr:Mercator (page does not exist)">&#160;मराठी&#160;</a></span></li> <li><span dir="auto" lang="hi"><a href="/w/index.php?title=Hi:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Hi:Mercator (page does not exist)">&#160;हिन्दी&#160;</a></span></li> <li><span dir="auto" lang="bn"><a href="/w/index.php?title=Bn:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Bn:Mercator (page does not exist)">&#160;বাংলা&#160;</a></span></li> <li><span dir="auto" lang="pa"><a href="/w/index.php?title=Pa:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Pa:Mercator (page does not exist)">&#160;ਪੰਜਾਬੀ&#160;</a></span></li> <li><span dir="auto" lang="ta"><a href="/w/index.php?title=Ta:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ta:Mercator (page does not exist)">&#160;தமிழ்&#160;</a></span></li> <li><span dir="auto" lang="ml"><a href="/w/index.php?title=Ml:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ml:Mercator (page does not exist)">&#160;മലയാളം&#160;</a></span></li> <li><span dir="auto" lang="si"><a href="/w/index.php?title=Si:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Si:Mercator (page does not exist)">&#160;සිංහල&#160;</a></span></li> <li><span dir="auto" lang="th"><a href="/w/index.php?title=Th:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Th:Mercator (page does not exist)">&#160;ไทย&#160;</a></span></li> <li><span dir="auto" lang="my"><a href="/w/index.php?title=My:Mercator&amp;action=edit&amp;redlink=1" class="new" title="My:Mercator (page does not exist)">&#160;မြန်မာဘာသာ&#160;</a></span></li> <li><span dir="auto" lang="ko"><a href="/w/index.php?title=Ko:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ko:Mercator (page does not exist)">&#160;한국어&#160;</a></span></li> <li><span dir="auto" lang="ka"><a href="/w/index.php?title=Ka:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Ka:Mercator (page does not exist)">&#160;ქართული&#160;</a></span></li> <li><span dir="auto" lang="tzm"><a href="/w/index.php?title=Tzm:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Tzm:Mercator (page does not exist)">&#160;ⵜⴰⵎⴰⵣⵉⵖⵜ&#160;</a></span></li> <li><span dir="auto" lang="zh-hans"><a href="/w/index.php?title=Zh-hans:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Zh-hans:Mercator (page does not exist)">&#160;中文(简体)&#160;</a></span></li> <li><span dir="auto" lang="zh-hant"><a href="/w/index.php?title=Zh-hant:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Zh-hant:Mercator (page does not exist)">&#160;中文(繁體)&#160;</a></span></li> <li><span dir="auto" lang="ja"><a href="/w/index.php?title=JA:Mercator&amp;action=edit&amp;redlink=1" class="new" title="JA:Mercator (page does not exist)">&#160;日本語&#160;</a></span></li> <li><span dir="auto" lang="yue"><a href="/w/index.php?title=Yue:Mercator&amp;action=edit&amp;redlink=1" class="new" title="Yue:Mercator (page does not exist)">&#160;粵語&#160;</a></span></li></div> </div> <div class="nomobile" style="background:#EEE;padding:1px"> <div id="ExpandLanguages" class="hlist" style="font-weight:bold;max-height:10000000px;text-align:center"> <ul><li><a href="#top">Other languages...</a></li></ul> </div> </div> </div> <dl><dd><i>For the OSM editor program, see <a href="/wiki/Merkaartor" title="Merkaartor">Merkaartor</a>.</i></dd></dl> <p>This article describes algorithms for <b><a href="https://en.wikipedia.org/wiki/Mercator_projection" class="extiw" title="wikipedia:Mercator projection">Mercator projection</a></b>. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Spherical_Pseudo-Mercator_projection"><span class="tocnumber">1</span> <span class="toctext">Spherical Pseudo-Mercator projection</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#JavaScript_(or_ActionScript)"><span class="tocnumber">1.1</span> <span class="toctext">JavaScript (or ActionScript)</span></a></li> <li class="toclevel-2 tocsection-3"><a href="#C"><span class="tocnumber">1.2</span> <span class="toctext">C</span></a></li> <li class="toclevel-2 tocsection-4"><a href="#C#"><span class="tocnumber">1.3</span> <span class="toctext">C#</span></a></li> <li class="toclevel-2 tocsection-5"><a href="#D"><span class="tocnumber">1.4</span> <span class="toctext">D</span></a></li> <li class="toclevel-2 tocsection-6"><a href="#Excel"><span class="tocnumber">1.5</span> <span class="toctext">Excel</span></a></li> <li class="toclevel-2 tocsection-7"><a href="#Java"><span class="tocnumber">1.6</span> <span class="toctext">Java</span></a></li> <li class="toclevel-2 tocsection-8"><a href="#LibreOffice_Calc_(3.5)"><span class="tocnumber">1.7</span> <span class="toctext">LibreOffice Calc (3.5)</span></a></li> <li class="toclevel-2 tocsection-9"><a href="#Perl"><span class="tocnumber">1.8</span> <span class="toctext">Perl</span></a></li> <li class="toclevel-2 tocsection-10"><a href="#PHP"><span class="tocnumber">1.9</span> <span class="toctext">PHP</span></a></li> <li class="toclevel-2 tocsection-11"><a href="#PostGIS_/_SQL"><span class="tocnumber">1.10</span> <span class="toctext">PostGIS / SQL</span></a></li> <li class="toclevel-2 tocsection-12"><a href="#Python"><span class="tocnumber">1.11</span> <span class="toctext">Python</span></a></li> <li class="toclevel-2 tocsection-13"><a href="#Rust"><span class="tocnumber">1.12</span> <span class="toctext">Rust</span></a></li> <li class="toclevel-2 tocsection-14"><a href="#Swift"><span class="tocnumber">1.13</span> <span class="toctext">Swift</span></a></li> <li class="toclevel-2 tocsection-15"><a href="#Go_(Golang)"><span class="tocnumber">1.14</span> <span class="toctext">Go (Golang)</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-16"><a href="#Elliptical_(true)_Mercator_Projection"><span class="tocnumber">2</span> <span class="toctext">Elliptical (true) Mercator Projection</span></a> <ul> <li class="toclevel-2 tocsection-17"><a href="#JavaScript_(or_ActionScript)_implementation"><span class="tocnumber">2.1</span> <span class="toctext">JavaScript (or ActionScript) implementation</span></a></li> <li class="toclevel-2 tocsection-18"><a href="#C_implementation"><span class="tocnumber">2.2</span> <span class="toctext">C implementation</span></a></li> <li class="toclevel-2 tocsection-19"><a href="#C#_implementation"><span class="tocnumber">2.3</span> <span class="toctext">C# implementation</span></a></li> <li class="toclevel-2 tocsection-20"><a href="#Java_implementation"><span class="tocnumber">2.4</span> <span class="toctext">Java implementation</span></a></li> <li class="toclevel-2 tocsection-21"><a href="#PHP_implementation"><span class="tocnumber">2.5</span> <span class="toctext">PHP implementation</span></a></li> <li class="toclevel-2 tocsection-22"><a href="#Python_implementation"><span class="tocnumber">2.6</span> <span class="toctext">Python implementation</span></a></li> <li class="toclevel-2 tocsection-23"><a href="#sdlBasic_implementation"><span class="tocnumber">2.7</span> <span class="toctext">sdlBasic implementation</span></a></li> <li class="toclevel-2 tocsection-24"><a href="#bash-script_(bc)_implementation"><span class="tocnumber">2.8</span> <span class="toctext">bash-script (bc) implementation</span></a></li> <li class="toclevel-2 tocsection-25"><a href="#VBA_for_Office_implementation"><span class="tocnumber">2.9</span> <span class="toctext">VBA for Office implementation</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-26"><a href="#Links"><span class="tocnumber">3</span> <span class="toctext">Links</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Spherical_Pseudo-Mercator_projection">Spherical Pseudo-Mercator projection</span></h2> <p>Most of OSM, including the main tiling system, uses a Pseudo-Mercator projection where the Earth is modelized as if it was a perfect a sphere. Combined with the zoom level, the system is known as a <span class="plainlinks" title="w:Web Mercator"><a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Web_Mercator"><span style="white-space:nowrap"><span style="white-space:normal"><bdi>Web Mercator</bdi></span></span></a></span>&#32;on Wikipedia. </p><p>This produces a fast approximation to the truer, but heavier elliptical projection, where the Earth would be projected on a more accurate ellipsoid (flattened on poles). As a consequence, direct mesurements of distances in this projection will be approximative, except on the Equator, and the aspect ratios on the rendered map for true squares measured on the surface on Earth will slightly change with latitude and angles not so precisely preserved by this spherical projection. </p> <h3><span id="JavaScript_.28or_ActionScript.29"></span><span class="mw-headline" id="JavaScript_(or_ActionScript)">JavaScript (or ActionScript)</span></h3><p> The following functions take or return their results in degrees:</p><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">RAD2DEG</span> <span class="o">=</span> <span class="mf">180</span> <span class="o">/</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span> <span class="nx">PI_4</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span> <span class="o">/</span> <span class="mf">4</span><span class="p">;</span> <span class="cm">/* The following functions take or return their results in degrees */</span> <span class="kd">function</span> <span class="nx">y2lat</span><span class="p">(</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">atan</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">exp</span><span class="p">(</span><span class="nx">y</span> <span class="o">/</span> <span class="nx">RAD2DEG</span><span class="p">))</span> <span class="o">/</span> <span class="nx">PI_4</span> <span class="o">-</span> <span class="mf">1</span><span class="p">)</span> <span class="o">*</span> <span class="mf">90</span><span class="p">;</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">x2lon</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">x</span><span class="p">;</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">lat2y</span><span class="p">(</span><span class="nx">lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">tan</span><span class="p">((</span><span class="nx">lat</span> <span class="o">/</span> <span class="mf">90</span> <span class="o">+</span> <span class="mf">1</span><span class="p">)</span> <span class="o">*</span> <span class="nx">PI_4</span> <span class="p">))</span> <span class="o">*</span> <span class="nx">RAD2DEG</span><span class="p">;</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">lon2x</span><span class="p">(</span><span class="nx">lon</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">lon</span><span class="p">;</span> <span class="p">}</span> </pre></div><p>The following take or return their results in Meters and Lat/Lon (similar to Python implementation below):</p><div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="nx">PI</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span> <span class="nx">RAD2DEG</span> <span class="o">=</span> <span class="mf">180</span><span class="o">/</span><span class="nx">PI</span><span class="p">;</span> <span class="nx">DEG2RAD</span> <span class="o">=</span> <span class="nx">PI</span><span class="o">/</span><span class="mf">180</span><span class="p">;</span> <span class="nx">R</span> <span class="o">=</span> <span class="mf">6378137.0</span> <span class="kd">function</span> <span class="nx">y2lat</span><span class="p">(</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">(</span><span class="mf">2</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">atan</span><span class="p">(</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">exp</span><span class="p">(</span><span class="nx">y</span> <span class="o">/</span> <span class="nx">R</span><span class="p">))</span> <span class="o">-</span> <span class="nx">PI</span><span class="o">/</span><span class="mf">2</span> <span class="p">)</span> <span class="o">*</span> <span class="nx">RAD2DEG</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">x2lon</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">RAD2DEG</span> <span class="o">*</span> <span class="p">(</span><span class="nx">x</span><span class="o">/</span><span class="nx">R</span><span class="p">);</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">lat2y</span><span class="p">(</span><span class="nx">lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">tan</span><span class="p">(</span><span class="nx">PI</span><span class="o">/</span><span class="mf">4</span> <span class="o">+</span> <span class="nx">lat</span> <span class="o">*</span> <span class="nx">DEG2RAD</span> <span class="o">/</span> <span class="mf">2</span><span class="p">))</span> <span class="o">*</span> <span class="nx">R</span><span class="p">}</span> <span class="kd">function</span> <span class="nx">lon2x</span><span class="p">(</span><span class="nx">lon</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">lon</span> <span class="o">*</span> <span class="nx">DEG2RAD</span> <span class="o">*</span> <span class="nx">R</span><span class="p">;</span> <span class="p">}</span> </pre></div> <h3><span class="mw-headline" id="C">C</span></h3> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;math.h&gt;</span><span class="cp"></span> <span class="cp">#define DEG2RAD(a) ((a) / (180 / M_PI))</span> <span class="cp">#define RAD2DEG(a) ((a) * (180 / M_PI))</span> <span class="cp">#define EARTH_RADIUS 6378137</span> <span class="cm">/* The following functions take their parameter and return their result in degrees */</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">y2lat_d</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">RAD2DEG</span><span class="p">(</span><span class="w"> </span><span class="n">atan</span><span class="p">(</span><span class="n">exp</span><span class="p">(</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="p">(</span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">))</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">M_PI</span><span class="o">/</span><span class="mi">2</span><span class="w"> </span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">x2lon_d</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">lat2y_d</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">RAD2DEG</span><span class="p">(</span><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="n">tan</span><span class="p">(</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">M_PI</span><span class="o">/</span><span class="mi">4</span><span class="w"> </span><span class="p">))</span><span class="w"> </span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">lon2x_d</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">lon</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="cm">/* The following functions take their parameter in something close to meters, along the equator, and return their result in degrees */</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">y2lat_m</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">RAD2DEG</span><span class="p">(</span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">atan</span><span class="p">(</span><span class="n">exp</span><span class="p">(</span><span class="w"> </span><span class="n">y</span><span class="o">/</span><span class="n">EARTH_RADIUS</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">M_PI</span><span class="o">/</span><span class="mi">2</span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">x2lon_m</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">RAD2DEG</span><span class="p">(</span><span class="w"> </span><span class="n">x</span><span class="o">/</span><span class="n">EARTH_RADIUS</span><span class="w"> </span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="cm">/* The following functions take their parameter in degrees, and return their result in something close to meters, along the equator */</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">lat2y_m</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="n">tan</span><span class="p">(</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">M_PI</span><span class="o">/</span><span class="mi">4</span><span class="w"> </span><span class="p">))</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">EARTH_RADIUS</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">lon2x_m</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="p">(</span><span class="n">lon</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">EARTH_RADIUS</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> </pre></div> <h3><span id="C.23"></span><span class="mw-headline" id="C#">C#</span></h3> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">YToLatitude</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">Atan</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">Exp</span><span class="p">(</span><span class="w"></span> <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">180</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"></span> <span class="w"> </span><span class="p">))</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">360</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">90</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">LatitudeToY</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">latitude</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">Log</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">Tan</span><span class="p">(</span><span class="w"></span> <span class="w"> </span><span class="p">(</span><span class="n">latitude</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">90</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">360</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"></span> <span class="w"> </span><span class="p">))</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">180</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> </pre></div> <h3><span class="mw-headline" id="D">D</span></h3> <div class="mw-highlight mw-highlight-lang-d mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">double</span><span class="w"> </span><span class="n">lon2x</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">import</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">math</span><span class="p">;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">PI</span><span class="p">*(</span><span class="n">lon</span><span class="p">/</span><span class="mf">180.0</span><span class="p">)</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="mf">6378137.0</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="n">lat2y</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">import</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">math</span><span class="p">;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="n">tan</span><span class="p">(</span><span class="n">PI_4</span><span class="p">+</span><span class="n">PI</span><span class="p">*(</span><span class="n">lat</span><span class="p">/</span><span class="mf">360.0</span><span class="p">)))*</span><span class="mf">6378137.0</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="n">x2lon</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">import</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">math</span><span class="p">;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">180</span><span class="p">*(</span><span class="n">x</span><span class="p">/</span><span class="mi">6378137</span><span class="p">)/</span><span class="n">PI</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="n">y2lat</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">import</span><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">math</span><span class="p">;</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">180</span><span class="p">*(</span><span class="mi">2</span><span class="p">*</span><span class="n">atan</span><span class="p">(</span><span class="n">exp</span><span class="p">(</span><span class="n">y</span><span class="p">/</span><span class="mi">6378137</span><span class="p">))-</span><span class="n">PI_2</span><span class="p">)/</span><span class="n">PI</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span> </pre></div> <h3><span class="mw-headline" id="Excel">Excel</span></h3> <p>I have simply converted the above script formulas into Excel formulas (values in A1 or B2): --<a href="/wiki/User:Krza" title="User:Krza">Krza</a> 23:36, 19 July 2008 (UTC) </p> <table class="wikitable" style="text-align:center"> <tbody><tr> <td>&#160; </td> <th scope="col">1</th> <th scope="col">2 </th></tr> <tr> <th scope="row">A </th> <td><i>y</i></td> <td><i>lat:</i> <tt>= ARCTAN(EXP(A1/180*PI())/PI()*360-90</tt> </td></tr> <tr> <th scope="row">B </th> <td><i>y:</i> <tt>= LOG(TAN((B2+90)/360*PI()))/PI()*180</tt></td> <td><i>lat</i> </td></tr></tbody></table> <p>Note: this may work for older versions of Excel, but in Excel 2010, ARCTAN() is called ATAN(), and you need to use LN() instead of LOG() to get the natural logarithm </p><p><br /> <b>Excel formulas for converting Lat/Lon to Meters</b> </p><p> Lat to Y (expecting Lat in A1):</p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre>=LN(TAN((PI()/4)+(RADIANS(A1)/2)))*6378137</pre></div><p>Lon to X (expecting Lon in B1):</p><div class="mw-highlight mw-content-ltr" dir="ltr"><pre>=RADIANS(B1)*6378137</pre></div> <h3><span class="mw-headline" id="Java">Java</span></h3> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">import</span> <span class="nn">java.lang.Math</span><span class="p">;</span> <span class="kd">public</span> <span class="kd">class</span> <span class="nc">SphericalMercator</span> <span class="p">{</span> <span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">double</span> <span class="n">RADIUS</span> <span class="o">=</span> <span class="mf">6378137.0</span><span class="p">;</span> <span class="cm">/* in meters on the equator */</span> <span class="cm">/* These functions take their length parameter in meters and return an angle in degrees */</span> <span class="kd">public</span> <span class="kd">static</span> <span class="kt">double</span> <span class="nf">y2lat</span><span class="p">(</span><span class="kt">double</span> <span class="n">aY</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">Math</span><span class="p">.</span><span class="na">toDegrees</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="na">atan</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="na">exp</span><span class="p">(</span><span class="n">aY</span> <span class="o">/</span> <span class="n">RADIUS</span><span class="p">))</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">Math</span><span class="p">.</span><span class="na">PI</span><span class="o">/</span><span class="mi">2</span><span class="p">);</span> <span class="p">}</span> <span class="kd">public</span> <span class="kd">static</span> <span class="kt">double</span> <span class="nf">x2lon</span><span class="p">(</span><span class="kt">double</span> <span class="n">aX</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">Math</span><span class="p">.</span><span class="na">toDegrees</span><span class="p">(</span><span class="n">aX</span> <span class="o">/</span> <span class="n">RADIUS</span><span class="p">);</span> <span class="p">}</span> <span class="cm">/* These functions take their angle parameter in degrees and return a length in meters */</span> <span class="kd">public</span> <span class="kd">static</span> <span class="kt">double</span> <span class="nf">lat2y</span><span class="p">(</span><span class="kt">double</span> <span class="n">aLat</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">Math</span><span class="p">.</span><span class="na">log</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="na">tan</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="na">PI</span> <span class="o">/</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">Math</span><span class="p">.</span><span class="na">toRadians</span><span class="p">(</span><span class="n">aLat</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">))</span> <span class="o">*</span> <span class="n">RADIUS</span><span class="p">;</span> <span class="p">}</span> <span class="kd">public</span> <span class="kd">static</span> <span class="kt">double</span> <span class="nf">lon2x</span><span class="p">(</span><span class="kt">double</span> <span class="n">aLong</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">Math</span><span class="p">.</span><span class="na">toRadians</span><span class="p">(</span><span class="n">aLong</span><span class="p">)</span> <span class="o">*</span> <span class="n">RADIUS</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <h3><span id="LibreOffice_Calc_.283.5.29"></span><span class="mw-headline" id="LibreOffice_Calc_(3.5)">LibreOffice Calc (3.5)</span></h3> <p>lon value in A1, lat value in A2 </p> <div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span> lon2x: = A1 * (PI()/180) * 6378137 x2lon: = A1 / (PI()/180) / 6378137 lat2y: = LN(TAN(A2 * (PI()/180)/2 + PI()/4)) * 6378137 y2lat: = (2*ATAN(EXP(A2/6378137)) - PI()/2) / (PI()/180 </pre></div> <h3><span class="mw-headline" id="Perl">Perl</span></h3> <div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr"><pre><span></span><span class="k">use</span> <span class="nn">Geo::Mercator</span><span class="p">;</span> <span class="k">my</span> <span class="p">(</span><span class="nv">$x</span><span class="p">,</span> <span class="nv">$y</span><span class="p">)</span> <span class="o">=</span> <span class="n">mercate</span><span class="p">(</span><span class="nv">$lat</span><span class="p">,</span> <span class="nv">$long</span><span class="p">)</span> </pre></div> <h3><span class="mw-headline" id="PHP">PHP</span></h3> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">function</span> <span class="nf">lon2x</span><span class="p">(</span><span class="nv">$lon</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">deg2rad</span><span class="p">(</span><span class="nv">$lon</span><span class="p">)</span> <span class="o">*</span> <span class="mf">6378137.0</span><span class="p">;</span> <span class="p">}</span> <span class="k">function</span> <span class="nf">lat2y</span><span class="p">(</span><span class="nv">$lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">log</span><span class="p">(</span><span class="nb">tan</span><span class="p">(</span><span class="nx">M_PI_4</span> <span class="o">+</span> <span class="nb">deg2rad</span><span class="p">(</span><span class="nv">$lat</span><span class="p">)</span> <span class="o">/</span> <span class="mf">2.0</span><span class="p">))</span> <span class="o">*</span> <span class="mf">6378137.0</span><span class="p">;</span> <span class="p">}</span> <span class="k">function</span> <span class="nf">x2lon</span><span class="p">(</span><span class="nv">$x</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">rad2deg</span><span class="p">(</span><span class="nv">$x</span> <span class="o">/</span> <span class="mf">6378137.0</span><span class="p">);</span> <span class="p">}</span> <span class="k">function</span> <span class="nf">y2lat</span><span class="p">(</span><span class="nv">$y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">rad2deg</span><span class="p">(</span><span class="mf">2.0</span> <span class="o">*</span> <span class="nb">atan</span><span class="p">(</span><span class="nb">exp</span><span class="p">(</span><span class="nv">$y</span> <span class="o">/</span> <span class="mf">6378137.0</span><span class="p">))</span> <span class="o">-</span> <span class="nx">M_PI_2</span><span class="p">);</span> <span class="p">}</span> </pre></div> <h3><span id="PostGIS_.2F_SQL"></span><span class="mw-headline" id="PostGIS_/_SQL">PostGIS / SQL</span></h3> <p>The SRID 900913 is commonly used for our projection but is not formally assigned. It is not included in the default projections supplied with PostGIS. It can be added into your database via: </p><p>[<a rel="nofollow" class="external text" href="http://trac.openstreetmap.org/browser/applications/utils/export/osm2pgsql/900913.sql">900913.sql</a>] </p> <div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">spatial_ref_sys</span><span class="w"> </span><span class="p">(</span><span class="n">srid</span><span class="p">,</span><span class="w"> </span><span class="n">auth_name</span><span class="p">,</span><span class="w"> </span><span class="n">auth_srid</span><span class="p">,</span><span class="w"> </span><span class="n">srtext</span><span class="p">,</span><span class="w"> </span><span class="n">proj4text</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span> <span class="w"> </span><span class="p">(</span><span class="mi">900913</span><span class="p">,</span><span class="s1">&#39;EPSG&#39;</span><span class="p">,</span><span class="mi">900913</span><span class="p">,</span><span class="s1">&#39;PROJCS[&quot;WGS84 / Simple Mercator&quot;,GEOGCS[&quot;WGS 84&quot;,</span> <span class="s1"> DATUM[&quot;WGS_1984&quot;,SPHEROID[&quot;WGS_1984&quot;, 6378137.0, 298.257223563]],PRIMEM[&quot;Greenwich&quot;, 0.0],</span> <span class="s1"> UNIT[&quot;degree&quot;, 0.017453292519943295],AXIS[&quot;Longitude&quot;, EAST],AXIS[&quot;Latitude&quot;, NORTH]],</span> <span class="s1"> PROJECTION[&quot;Mercator_1SP_Google&quot;],PARAMETER[&quot;latitude_of_origin&quot;, 0.0],</span> <span class="s1"> PARAMETER[&quot;central_meridian&quot;, 0.0],PARAMETER[&quot;scale_factor&quot;, 1.0],PARAMETER[&quot;false_easting&quot;, 0.0],</span> <span class="s1"> PARAMETER[&quot;false_northing&quot;, 0.0],UNIT[&quot;m&quot;, 1.0],AXIS[&quot;x&quot;, EAST],</span> <span class="s1"> AXIS[&quot;y&quot;, NORTH],AUTHORITY[&quot;EPSG&quot;,&quot;900913&quot;]]&#39;</span><span class="p">,</span><span class="w"></span> <span class="w"> </span><span class="s1">&#39;+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs&#39;</span><span class="p">);</span><span class="w"></span> </pre></div> <h3><span class="mw-headline" id="Python">Python</span></h3> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">import</span> <span class="nn">math</span> <span class="n">R</span> <span class="o">=</span> <span class="mf">6378137.0</span> <span class="k">def</span> <span class="nf">y2lat</span><span class="p">(</span><span class="n">y</span><span class="p">):</span> <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">degrees</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">atan</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">exp</span> <span class="p">(</span><span class="n">y</span> <span class="o">/</span> <span class="n">R</span><span class="p">))</span> <span class="o">-</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mf">2.0</span><span class="p">)</span> <span class="k">def</span> <span class="nf">lat2y</span><span class="p">(</span><span class="n">lat</span><span class="p">):</span> <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">tan</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">4</span> <span class="o">+</span> <span class="n">math</span><span class="o">.</span><span class="n">radians</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span><span class="p">))</span> <span class="o">*</span> <span class="n">R</span> <span class="k">def</span> <span class="nf">x2lng</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">degrees</span><span class="p">(</span><span class="n">x</span> <span class="o">/</span> <span class="n">R</span><span class="p">)</span> <span class="k">def</span> <span class="nf">lon2x</span><span class="p">(</span><span class="n">lon</span><span class="p">):</span> <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">radians</span><span class="p">(</span><span class="n">lon</span><span class="p">)</span> <span class="o">*</span> <span class="n">R</span> </pre></div> <h3><span class="mw-headline" id="Rust">Rust</span></h3> <div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// length of semi-major axis of the WGS84 ellipsoid, i.e. radius at equator</span> <span class="k">const</span><span class="w"> </span><span class="n">EARTH_RADIUS_KM</span>: <span class="kt">f64</span> <span class="o">=</span><span class="w"> </span><span class="mf">6_378.137</span><span class="p">;</span><span class="w"></span> <span class="w"> </span> <span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">lon2x</span><span class="p">(</span><span class="n">lon</span>: <span class="kt">f64</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">f64</span> <span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="n">EARTH_RADIUS_KM</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1000.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">lon</span><span class="p">.</span><span class="n">to_radians</span><span class="p">()</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">x2lon</span><span class="p">(</span><span class="n">x</span>: <span class="kt">f64</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">f64</span> <span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="p">(</span><span class="n">EARTH_RADIUS_KM</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1000.</span><span class="p">)).</span><span class="n">to_degrees</span><span class="p">()</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">lat2y</span><span class="p">(</span><span class="n">lat</span>: <span class="kt">f64</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">f64</span> <span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="p">((</span><span class="n">lat</span><span class="p">.</span><span class="n">to_radians</span><span class="p">()</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2.</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">std</span>::<span class="kt">f64</span>::<span class="n">consts</span>::<span class="n">PI</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">4.</span><span class="p">).</span><span class="n">tan</span><span class="p">()).</span><span class="n">log</span><span class="p">(</span><span class="n">std</span>::<span class="kt">f64</span>::<span class="n">consts</span>::<span class="n">E</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">EARTH_RADIUS_KM</span><span class="w"></span> <span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1000.</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">y2lat</span><span class="p">(</span><span class="n">y</span>: <span class="kt">f64</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="kt">f64</span> <span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="p">(</span><span class="mf">2.</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">((</span><span class="n">y</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="p">(</span><span class="n">EARTH_RADIUS_KM</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">1000.</span><span class="p">)).</span><span class="n">exp</span><span class="p">()).</span><span class="n">atan</span><span class="p">()</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">std</span>::<span class="kt">f64</span>::<span class="n">consts</span>::<span class="n">PI</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">2.</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">.</span><span class="n">to_degrees</span><span class="p">()</span><span class="w"></span> <span class="p">}</span><span class="w"></span> </pre></div> <h3><span class="mw-headline" id="Swift">Swift</span></h3> <div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">class</span> <span class="nc">SphericalMercator</span> <span class="p">{</span> <span class="kd">private</span> <span class="kd">let</span> <span class="nv">radius</span><span class="p">:</span> <span class="nb">Double</span> <span class="p">=</span> <span class="mf">6378137.0</span><span class="p">;</span> <span class="cm">/* in meters on the equator */</span> <span class="cm">/* These functions take their length parameter in meters and return an angle in degrees */</span> <span class="kd">func</span> <span class="nf">y2lat</span><span class="p">(</span><span class="n">aY</span><span class="p">:</span> <span class="nb">Double</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Double</span> <span class="p">{</span> <span class="p">(</span><span class="n">atan</span><span class="p">(</span><span class="n">exp</span><span class="p">(</span><span class="n">aY</span> <span class="o">/</span> <span class="n">radius</span><span class="p">))</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">-</span> <span class="nb">Double</span><span class="p">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">).</span><span class="n">radiansToDegrees</span> <span class="p">}</span> <span class="kd">func</span> <span class="nf">x2lon</span><span class="p">(</span><span class="n">aX</span><span class="p">:</span> <span class="nb">Double</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Double</span> <span class="p">{</span> <span class="p">(</span><span class="n">aX</span> <span class="o">/</span> <span class="n">radius</span><span class="p">).</span><span class="n">radiansToDegrees</span><span class="p">;</span> <span class="p">}</span> <span class="cm">/* These functions take their angle parameter in degrees and return a length in meters */</span> <span class="kd">func</span> <span class="nf">lat2y</span><span class="p">(</span><span class="n">aLat</span><span class="p">:</span> <span class="nb">Double</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Double</span> <span class="p">{</span> <span class="n">log</span><span class="p">(</span><span class="n">tan</span><span class="p">(</span><span class="nb">Double</span><span class="p">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">4</span> <span class="o">+</span> <span class="p">(</span><span class="n">aLat</span><span class="p">.</span><span class="n">degreesToRadians</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)))</span> <span class="o">*</span> <span class="n">radius</span> <span class="p">}</span> <span class="kd">func</span> <span class="nf">lon2x</span><span class="p">(</span><span class="n">aLong</span><span class="p">:</span> <span class="nb">Double</span><span class="p">)</span> <span class="p">-&gt;</span> <span class="nb">Double</span> <span class="p">{</span> <span class="p">(</span><span class="n">aLong</span><span class="p">).</span><span class="n">degreesToRadians</span> <span class="o">*</span> <span class="n">radius</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="kd">extension</span> <span class="nc">FloatingPoint</span> <span class="p">{</span> <span class="kd">var</span> <span class="nv">degreesToRadians</span><span class="p">:</span> <span class="kc">Self</span> <span class="p">{</span> <span class="kc">self</span> <span class="o">*</span> <span class="p">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">180</span> <span class="p">}</span> <span class="kd">var</span> <span class="nv">radiansToDegrees</span><span class="p">:</span> <span class="kc">Self</span> <span class="p">{</span> <span class="kc">self</span> <span class="o">*</span> <span class="mi">180</span> <span class="o">/</span> <span class="p">.</span><span class="n">pi</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <h3><span id="Go_.28Golang.29"></span><span class="mw-headline" id="Go_(Golang)">Go (Golang)</span></h3> <div class="mw-highlight mw-highlight-lang-go mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">package</span><span class="w"> </span><span class="nx">main</span><span class="w"></span> <span class="kn">import</span><span class="w"> </span><span class="s">&quot;math&quot;</span><span class="w"></span> <span class="kd">const</span><span class="w"> </span><span class="nx">R</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mf">6378137.0</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">Radians</span><span class="p">(</span><span class="nx">deg</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">deg</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">180</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">Degrees</span><span class="p">(</span><span class="nx">rad</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">rad</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">180</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">Y2lat</span><span class="p">(</span><span class="nx">y</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">Degrees</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="nx">math</span><span class="p">.</span><span class="nx">Atan</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nx">Exp</span><span class="p">(</span><span class="nx">y</span><span class="o">/</span><span class="nx">R</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">Lat2y</span><span class="p">(</span><span class="nx">lat</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">R</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">math</span><span class="p">.</span><span class="nx">Log</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nx">Tan</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span><span class="o">/</span><span class="mi">4</span><span class="o">+</span><span class="nx">Radians</span><span class="p">(</span><span class="nx">lat</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">X2lat</span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">Degrees</span><span class="p">(</span><span class="nx">x</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="nx">R</span><span class="p">)</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kd">func</span><span class="w"> </span><span class="nx">Lon2x</span><span class="p">(</span><span class="nx">lon</span><span class="w"> </span><span class="kt">float64</span><span class="p">)</span><span class="w"> </span><span class="kt">float64</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">R</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nx">Radians</span><span class="p">(</span><span class="nx">lon</span><span class="p">)</span><span class="w"></span> <span class="p">}</span><span class="w"></span> </pre></div> <p><b>FIXME</b>: add spherical code in other languages here </p> <h2><span id="Elliptical_.28true.29_Mercator_Projection"></span><span class="mw-headline" id="Elliptical_(true)_Mercator_Projection">Elliptical (true) Mercator Projection</span></h2> <p>This projection gives more accurate aspect ratios for objects anywhere on Earth, and respects their angles with higher precision. However, this projection is not commonly used on most maps used on the OSM websites and in editors. </p> <h3><span id="JavaScript_.28or_ActionScript.29_implementation"></span><span class="mw-headline" id="JavaScript_(or_ActionScript)_implementation">JavaScript (or ActionScript) implementation</span></h3> <p>From a posting by <a href="/wiki/User:Crschmidt" title="User:Crschmidt">Christopher Schmidt</a> to the dev list on 2nd December 2006: </p><p><i>So, for everyone's elucidation, here is the way to convert from latitude and longitude to a simple (elliptical) Mercator projection, in Javascript:</i> </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">function</span> <span class="nx">deg_rad</span><span class="p">(</span><span class="nx">ang</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">ang</span> <span class="o">*</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">/</span><span class="mf">180.0</span><span class="p">)</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">merc_x</span><span class="p">(</span><span class="nx">lon</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">r_major</span> <span class="o">=</span> <span class="mf">6378137.000</span><span class="p">;</span> <span class="k">return</span> <span class="nx">r_major</span> <span class="o">*</span> <span class="nx">deg_rad</span><span class="p">(</span><span class="nx">lon</span><span class="p">);</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">merc_y</span><span class="p">(</span><span class="nx">lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lat</span> <span class="o">&gt;</span> <span class="mf">89.5</span><span class="p">)</span> <span class="nx">lat</span> <span class="o">=</span> <span class="mf">89.5</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lat</span> <span class="o">&lt;</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">)</span> <span class="nx">lat</span> <span class="o">=</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">r_major</span> <span class="o">=</span> <span class="mf">6378137.000</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">r_minor</span> <span class="o">=</span> <span class="mf">6356752.3142</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">temp</span> <span class="o">=</span> <span class="nx">r_minor</span> <span class="o">/</span> <span class="nx">r_major</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">es</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">-</span> <span class="p">(</span><span class="nx">temp</span> <span class="o">*</span> <span class="nx">temp</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">eccent</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="nx">es</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">phi</span> <span class="o">=</span> <span class="nx">deg_rad</span><span class="p">(</span><span class="nx">lat</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">sinphi</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sin</span><span class="p">(</span><span class="nx">phi</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">con</span> <span class="o">=</span> <span class="nx">eccent</span> <span class="o">*</span> <span class="nx">sinphi</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">com</span> <span class="o">=</span> <span class="mf">.5</span> <span class="o">*</span> <span class="nx">eccent</span><span class="p">;</span> <span class="nx">con</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">((</span><span class="mf">1.0</span><span class="o">-</span><span class="nx">con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="nx">con</span><span class="p">),</span> <span class="nx">com</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">ts</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">tan</span><span class="p">(</span><span class="mf">.5</span> <span class="o">*</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">*</span><span class="mf">0.5</span> <span class="o">-</span> <span class="nx">phi</span><span class="p">))</span><span class="o">/</span><span class="nx">con</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">y</span> <span class="o">=</span> <span class="mf">0</span> <span class="o">-</span> <span class="nx">r_major</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ts</span><span class="p">);</span> <span class="k">return</span> <span class="nx">y</span><span class="p">;</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">merc</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="p">[</span><span class="nx">merc_x</span><span class="p">(</span><span class="nx">x</span><span class="p">),</span><span class="nx">merc_y</span><span class="p">(</span><span class="nx">y</span><span class="p">)];</span> <span class="p">}</span> </pre></div> <p>LatLon to/from Mercator converting class based on script above, and proj4 implementation: </p> <div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">var</span> <span class="nx">Conv</span><span class="o">=</span><span class="p">({</span> <span class="nx">r_major</span><span class="o">:</span><span class="mf">6378137.0</span><span class="p">,</span><span class="c1">//Equatorial Radius, WGS84</span> <span class="nx">r_minor</span><span class="o">:</span><span class="mf">6356752.314245179</span><span class="p">,</span><span class="c1">//defined as constant</span> <span class="nx">f</span><span class="o">:</span><span class="mf">298.257223563</span><span class="p">,</span><span class="c1">//1/f=(a-b)/a , a=r_major, b=r_minor</span> <span class="nx">deg2rad</span><span class="o">:</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">r</span><span class="o">=</span><span class="nx">d</span><span class="o">*</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">/</span><span class="mf">180.0</span><span class="p">);</span> <span class="k">return</span> <span class="nx">r</span><span class="p">;</span> <span class="p">},</span> <span class="nx">rad2deg</span><span class="o">:</span><span class="kd">function</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">d</span><span class="o">=</span><span class="nx">r</span><span class="o">/</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">/</span><span class="mf">180.0</span><span class="p">);</span> <span class="k">return</span> <span class="nx">d</span><span class="p">;</span> <span class="p">},</span> <span class="nx">ll2m</span><span class="o">:</span><span class="kd">function</span><span class="p">(</span><span class="nx">lon</span><span class="p">,</span><span class="nx">lat</span><span class="p">)</span> <span class="c1">//lat lon to mercator</span> <span class="p">{</span> <span class="c1">//lat, lon in rad</span> <span class="kd">var</span> <span class="nx">x</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">r_major</span> <span class="o">*</span> <span class="k">this</span><span class="p">.</span><span class="nx">deg2rad</span><span class="p">(</span><span class="nx">lon</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lat</span> <span class="o">&gt;</span> <span class="mf">89.5</span><span class="p">)</span> <span class="nx">lat</span> <span class="o">=</span> <span class="mf">89.5</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="nx">lat</span> <span class="o">&lt;</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">)</span> <span class="nx">lat</span> <span class="o">=</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">temp</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">r_minor</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">r_major</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">es</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">-</span> <span class="p">(</span><span class="nx">temp</span> <span class="o">*</span> <span class="nx">temp</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">eccent</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="nx">es</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">phi</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">deg2rad</span><span class="p">(</span><span class="nx">lat</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">sinphi</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sin</span><span class="p">(</span><span class="nx">phi</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">con</span> <span class="o">=</span> <span class="nx">eccent</span> <span class="o">*</span> <span class="nx">sinphi</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">com</span> <span class="o">=</span> <span class="mf">.5</span> <span class="o">*</span> <span class="nx">eccent</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">con2</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">((</span><span class="mf">1.0</span><span class="o">-</span><span class="nx">con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="nx">con</span><span class="p">),</span> <span class="nx">com</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">ts</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">tan</span><span class="p">(</span><span class="mf">.5</span> <span class="o">*</span> <span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">*</span><span class="mf">0.5</span> <span class="o">-</span> <span class="nx">phi</span><span class="p">))</span><span class="o">/</span><span class="nx">con2</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">y</span> <span class="o">=</span> <span class="mf">0</span> <span class="o">-</span> <span class="k">this</span><span class="p">.</span><span class="nx">r_major</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">ts</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">ret</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;x&#39;</span><span class="o">:</span><span class="nx">x</span><span class="p">,</span><span class="s1">&#39;y&#39;</span><span class="o">:</span><span class="nx">y</span><span class="p">};</span> <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span> <span class="p">},</span> <span class="nx">m2ll</span><span class="o">:</span><span class="kd">function</span><span class="p">(</span><span class="nx">x</span><span class="p">,</span><span class="nx">y</span><span class="p">)</span> <span class="c1">//mercator to lat lon</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">lon</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">rad2deg</span><span class="p">((</span><span class="nx">x</span><span class="o">/</span><span class="k">this</span><span class="p">.</span><span class="nx">r_major</span><span class="p">));</span> <span class="kd">var</span> <span class="nx">temp</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">r_minor</span> <span class="o">/</span> <span class="k">this</span><span class="p">.</span><span class="nx">r_major</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">e</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sqrt</span><span class="p">(</span><span class="mf">1.0</span> <span class="o">-</span> <span class="p">(</span><span class="nx">temp</span> <span class="o">*</span> <span class="nx">temp</span><span class="p">));</span> <span class="kd">var</span> <span class="nx">lat</span><span class="o">=</span><span class="k">this</span><span class="p">.</span><span class="nx">rad2deg</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">pj_phi2</span><span class="p">(</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">exp</span><span class="p">(</span> <span class="mf">0</span><span class="o">-</span><span class="p">(</span><span class="nx">y</span><span class="o">/</span><span class="k">this</span><span class="p">.</span><span class="nx">r_major</span><span class="p">)),</span> <span class="nx">e</span><span class="p">));</span> <span class="kd">var</span> <span class="nx">ret</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;lon&#39;</span><span class="o">:</span><span class="nx">lon</span><span class="p">,</span><span class="s1">&#39;lat&#39;</span><span class="o">:</span><span class="nx">lat</span><span class="p">};</span> <span class="k">return</span> <span class="nx">ret</span><span class="p">;</span> <span class="p">},</span> <span class="nx">pj_phi2</span><span class="o">:</span><span class="kd">function</span><span class="p">(</span><span class="nx">ts</span><span class="p">,</span> <span class="nx">e</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">N_ITER</span><span class="o">=</span><span class="mf">15</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">HALFPI</span><span class="o">=</span><span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="o">/</span><span class="mf">2</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">TOL</span><span class="o">=</span><span class="mf">0.0000000001</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">eccnth</span><span class="p">,</span> <span class="nx">Phi</span><span class="p">,</span> <span class="nx">con</span><span class="p">,</span> <span class="nx">dphi</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">i</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">eccnth</span> <span class="o">=</span> <span class="mf">.5</span> <span class="o">*</span> <span class="nx">e</span><span class="p">;</span> <span class="nx">Phi</span> <span class="o">=</span> <span class="nx">HALFPI</span> <span class="o">-</span> <span class="mf">2.</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">atan</span> <span class="p">(</span><span class="nx">ts</span><span class="p">);</span> <span class="nx">i</span> <span class="o">=</span> <span class="nx">N_ITER</span><span class="p">;</span> <span class="k">do</span> <span class="p">{</span> <span class="nx">con</span> <span class="o">=</span> <span class="nx">e</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">sin</span> <span class="p">(</span><span class="nx">Phi</span><span class="p">);</span> <span class="nx">dphi</span> <span class="o">=</span> <span class="nx">HALFPI</span> <span class="o">-</span> <span class="mf">2.</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">atan</span> <span class="p">(</span><span class="nx">ts</span> <span class="o">*</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">pow</span><span class="p">((</span><span class="mf">1.</span> <span class="o">-</span> <span class="nx">con</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mf">1.</span> <span class="o">+</span> <span class="nx">con</span><span class="p">),</span> <span class="nx">eccnth</span><span class="p">))</span> <span class="o">-</span> <span class="nx">Phi</span><span class="p">;</span> <span class="nx">Phi</span> <span class="o">+=</span> <span class="nx">dphi</span><span class="p">;</span> <span class="p">}</span> <span class="k">while</span> <span class="p">(</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">abs</span><span class="p">(</span><span class="nx">dphi</span><span class="p">)</span><span class="o">&gt;</span><span class="nx">TOL</span> <span class="o">&amp;&amp;</span> <span class="o">--</span><span class="nx">i</span><span class="p">);</span> <span class="k">return</span> <span class="nx">Phi</span><span class="p">;</span> <span class="p">}</span> <span class="p">});</span> <span class="c1">//usage</span> <span class="kd">var</span> <span class="nx">mercator</span><span class="o">=</span><span class="nx">Conv</span><span class="p">.</span><span class="nx">ll2m</span><span class="p">(</span><span class="mf">47.6035525</span><span class="p">,</span> <span class="mf">9.770602</span><span class="p">);</span><span class="c1">//output mercator.x, mercator.y</span> <span class="kd">var</span> <span class="nx">latlon</span><span class="o">=</span><span class="nx">Conv</span><span class="p">.</span><span class="nx">m2ll</span><span class="p">(</span><span class="mf">5299424.36041</span><span class="p">,</span> <span class="mf">1085840.05328</span><span class="p">);</span><span class="c1">//output latlon.lat, latlon.lon</span> </pre></div> <h3><span class="mw-headline" id="C_implementation">C implementation</span></h3> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;math.h&gt;</span><span class="cp"></span> <span class="cm">/*</span> <span class="cm"> * Mercator transformation</span> <span class="cm"> * accounts for the fact that the earth is not a sphere, but a spheroid</span> <span class="cm"> */</span><span class="w"></span> <span class="cp">#define D_R (M_PI / 180.0)</span> <span class="cp">#define R_D (180.0 / M_PI)</span> <span class="cp">#define R_MAJOR 6378137.0</span> <span class="cp">#define R_MINOR 6356752.3142</span> <span class="cp">#define RATIO (R_MINOR/R_MAJOR)</span> <span class="cp">#define ECCENT (sqrt(1.0 - (RATIO * RATIO)))</span> <span class="cp">#define COM (0.5 * ECCENT)</span> <span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">deg_rad</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">ang</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ang</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">D_R</span><span class="p">;</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">merc_x</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">deg_rad</span><span class="w"> </span><span class="p">(</span><span class="n">lon</span><span class="p">);</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">merc_y</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="n">lat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">fmin</span><span class="w"> </span><span class="p">(</span><span class="mf">89.5</span><span class="p">,</span><span class="w"> </span><span class="n">fmax</span><span class="w"> </span><span class="p">(</span><span class="n">lat</span><span class="p">,</span><span class="w"> </span><span class="mf">-89.5</span><span class="p">));</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deg_rad</span><span class="p">(</span><span class="n">lat</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">sinphi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sin</span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ECCENT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">sinphi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">pow</span><span class="p">((</span><span class="mf">1.0</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">con</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="p">(</span><span class="mf">1.0</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">con</span><span class="p">),</span><span class="w"> </span><span class="n">COM</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tan</span><span class="p">(</span><span class="mf">0.5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">M_PI</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">0.5</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">phi</span><span class="p">))</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">con</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">log</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">rad_deg</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">ang</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ang</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">R_D</span><span class="p">;</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">merc_lon</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rad_deg</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="p">;</span><span class="w"></span> <span class="p">}</span><span class="w"></span> <span class="kt">double</span><span class="w"> </span><span class="nf">merc_lat</span><span class="w"> </span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">exp</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="o">-</span><span class="n">y</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">M_PI_2</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">atan</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">dphi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1.0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">fabs</span><span class="p">(</span><span class="n">dphi</span><span class="p">)</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0.000000001</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">15</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ECCENT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">sin</span><span class="w"> </span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="n">dphi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">M_PI_2</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">atan</span><span class="w"> </span><span class="p">(</span><span class="n">ts</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">pow</span><span class="p">((</span><span class="mf">1.0</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">con</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="p">(</span><span class="mf">1.0</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">con</span><span class="p">),</span><span class="w"> </span><span class="n">COM</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">phi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">dphi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rad_deg</span><span class="w"> </span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="p">}</span><span class="w"></span> </pre></div> <p>To compile in Visual Studio / MS Windows OS, I had to add these definitions <a href="/wiki/User:Ewmjc" title="User:Ewmjc">MikeCollinson</a> 14:17, 20 January 2007 (UTC): </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="c1">// Add this line before including math.h:</span> <span class="cp">#define _USE_MATH_DEFINES</span> <span class="c1">// Additions for MS Windows compilation:</span> <span class="cp">#ifndef M_PI</span> <span class="w"> </span><span class="cp">#define M_PI acos(-1.0)</span> <span class="cp">#endif</span> <span class="cp">#ifndef M_PI_2</span> <span class="w"> </span><span class="cp">#define M_PI_2 1.57079632679489661922</span> <span class="cp">#endif</span> <span class="kr">inline</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">fmin</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="kr">inline</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">fmax</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">return</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">y</span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span> </pre></div> <h3><span id="C.23_implementation"></span><span class="mw-headline" id="C#_implementation">C# implementation</span></h3> <p><i>C# Implementation by Florian Müller, based on the C code published above, 14:50, 20.6.2008; updated to static functions by David Schmitt, 23.4.2010</i> </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="k">using</span><span class="w"> </span><span class="nn">System</span><span class="p">;</span><span class="w"></span> <span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">MercatorProjection</span><span class="w"></span> <span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">6378137.0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">R_MINOR</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">6356752.3142</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">RATIO</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">R_MINOR</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">ECCENT</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Sqrt</span><span class="p">(</span><span class="m">1.0</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="p">(</span><span class="n">RATIO</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">RATIO</span><span class="p">));</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">COM</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0.5</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">ECCENT</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">180.0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">RAD2Deg</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">180.0</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="k">readonly</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">PI_2</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">2.0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="p">[]</span><span class="w"> </span><span class="nf">toPixel</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">,</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">double</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">lonToX</span><span class="p">(</span><span class="n">lon</span><span class="p">),</span><span class="w"> </span><span class="n">latToY</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span><span class="w"> </span><span class="p">};</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="p">[]</span><span class="w"> </span><span class="nf">toGeoCoord</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">double</span><span class="p">[]</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">xToLon</span><span class="p">(</span><span class="n">x</span><span class="p">),</span><span class="w"> </span><span class="n">yToLat</span><span class="p">(</span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="p">};</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">lonToX</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lon</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">DegToRad</span><span class="p">(</span><span class="n">lon</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">latToY</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">lat</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="n">lat</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Min</span><span class="p">(</span><span class="m">89.5</span><span class="p">,</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">lat</span><span class="p">,</span><span class="w"> </span><span class="p">-</span><span class="m">89.5</span><span class="p">));</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">DegToRad</span><span class="p">(</span><span class="n">lat</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">sinphi</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Sin</span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">ECCENT</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">sinphi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Pow</span><span class="p">(((</span><span class="m">1.0</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">con</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="p">(</span><span class="m">1.0</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">con</span><span class="p">)),</span><span class="w"> </span><span class="n">COM</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Tan</span><span class="p">(</span><span class="m">0.5</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="p">((</span><span class="n">Math</span><span class="p">.</span><span class="n">PI</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.5</span><span class="p">)</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">phi</span><span class="p">))</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">con</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Log</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">xToLon</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nf">RadToDeg</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">yToLat</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">y</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Exp</span><span class="p">(-</span><span class="n">y</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="n">R_MAJOR</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">PI_2</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Atan</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">dphi</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">1.0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="n">Math</span><span class="p">.</span><span class="n">Abs</span><span class="p">(</span><span class="n">dphi</span><span class="p">)</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">0.000000001</span><span class="p">)</span><span class="w"> </span><span class="p">&amp;&amp;</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="m">15</span><span class="p">))</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">ECCENT</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Sin</span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="n">dphi</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">PI_2</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="m">2</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Atan</span><span class="p">(</span><span class="n">ts</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Pow</span><span class="p">((</span><span class="m">1.0</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">con</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="p">(</span><span class="m">1.0</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">con</span><span class="p">),</span><span class="w"> </span><span class="n">COM</span><span class="p">))</span><span class="w"> </span><span class="p">-</span><span class="w"> </span><span class="n">phi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="p">+=</span><span class="w"> </span><span class="n">dphi</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="n">i</span><span class="p">++;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nf">RadToDeg</span><span class="p">(</span><span class="n">phi</span><span class="p">);</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">RadToDeg</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">rad</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">rad</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">RAD2Deg</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="nf">DegToRad</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="n">deg</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="p">{</span><span class="w"></span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">deg</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">DEG2RAD</span><span class="p">;</span><span class="w"></span> <span class="w"> </span><span class="p">}</span><span class="w"></span> <span class="p">}</span><span class="w"></span> </pre></div> <h3><span class="mw-headline" id="Java_implementation">Java implementation</span></h3> <p><i>Java Implementation by Moshe Sayag, based on the JavaScript code published above, 17:11, 15.1.2008</i> </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Mercator</span> <span class="p">{</span> <span class="kd">final</span> <span class="kd">private</span> <span class="kd">static</span> <span class="kt">double</span> <span class="n">R_MAJOR</span> <span class="o">=</span> <span class="mf">6378137.0</span><span class="p">;</span> <span class="kd">final</span> <span class="kd">private</span> <span class="kd">static</span> <span class="kt">double</span> <span class="n">R_MINOR</span> <span class="o">=</span> <span class="mf">6356752.3142</span><span class="p">;</span> <span class="kd">public</span> <span class="kt">double</span><span class="o">[]</span> <span class="nf">merc</span><span class="p">(</span><span class="kt">double</span> <span class="n">x</span><span class="p">,</span> <span class="kt">double</span> <span class="n">y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="k">new</span> <span class="kt">double</span><span class="o">[]</span> <span class="p">{</span><span class="n">mercX</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">mercY</span><span class="p">(</span><span class="n">y</span><span class="p">)};</span> <span class="p">}</span> <span class="kd">private</span> <span class="kt">double</span> <span class="nf">mercX</span><span class="p">(</span><span class="kt">double</span> <span class="n">lon</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">R_MAJOR</span> <span class="o">*</span> <span class="n">Math</span><span class="p">.</span><span class="na">toRadians</span><span class="p">(</span><span class="n">lon</span><span class="p">);</span> <span class="p">}</span> <span class="kd">private</span> <span class="kt">double</span> <span class="nf">mercY</span><span class="p">(</span><span class="kt">double</span> <span class="n">lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">lat</span> <span class="o">&gt;</span> <span class="mf">89.5</span><span class="p">)</span> <span class="p">{</span> <span class="n">lat</span> <span class="o">=</span> <span class="mf">89.5</span><span class="p">;</span> <span class="p">}</span> <span class="k">if</span> <span class="p">(</span><span class="n">lat</span> <span class="o">&lt;</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">)</span> <span class="p">{</span> <span class="n">lat</span> <span class="o">=</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">;</span> <span class="p">}</span> <span class="kt">double</span> <span class="n">temp</span> <span class="o">=</span> <span class="n">R_MINOR</span> <span class="o">/</span> <span class="n">R_MAJOR</span><span class="p">;</span> <span class="kt">double</span> <span class="n">es</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">-</span> <span class="p">(</span><span class="n">temp</span> <span class="o">*</span> <span class="n">temp</span><span class="p">);</span> <span class="kt">double</span> <span class="n">eccent</span> <span class="o">=</span> <span class="n">Math</span><span class="p">.</span><span class="na">sqrt</span><span class="p">(</span><span class="n">es</span><span class="p">);</span> <span class="kt">double</span> <span class="n">phi</span> <span class="o">=</span> <span class="n">Math</span><span class="p">.</span><span class="na">toRadians</span><span class="p">(</span><span class="n">lat</span><span class="p">);</span> <span class="kt">double</span> <span class="n">sinphi</span> <span class="o">=</span> <span class="n">Math</span><span class="p">.</span><span class="na">sin</span><span class="p">(</span><span class="n">phi</span><span class="p">);</span> <span class="kt">double</span> <span class="n">con</span> <span class="o">=</span> <span class="n">eccent</span> <span class="o">*</span> <span class="n">sinphi</span><span class="p">;</span> <span class="kt">double</span> <span class="n">com</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="n">eccent</span><span class="p">;</span> <span class="n">con</span> <span class="o">=</span> <span class="n">Math</span><span class="p">.</span><span class="na">pow</span><span class="p">(((</span><span class="mf">1.0</span><span class="o">-</span><span class="n">con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="n">con</span><span class="p">)),</span> <span class="n">com</span><span class="p">);</span> <span class="kt">double</span> <span class="n">ts</span> <span class="o">=</span> <span class="n">Math</span><span class="p">.</span><span class="na">tan</span><span class="p">(</span><span class="mf">0.5</span> <span class="o">*</span> <span class="p">((</span><span class="n">Math</span><span class="p">.</span><span class="na">PI</span><span class="o">*</span><span class="mf">0.5</span><span class="p">)</span> <span class="o">-</span> <span class="n">phi</span><span class="p">))</span><span class="o">/</span><span class="n">con</span><span class="p">;</span> <span class="kt">double</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">0</span> <span class="o">-</span> <span class="n">R_MAJOR</span> <span class="o">*</span> <span class="n">Math</span><span class="p">.</span><span class="na">log</span><span class="p">(</span><span class="n">ts</span><span class="p">);</span> <span class="k">return</span> <span class="n">y</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <h3><span class="mw-headline" id="PHP_implementation">PHP implementation</span></h3> <p><i>Php Code by Erhan Baris 19:19, 01.09.2007</i> </p> <div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span></span><span class="k">function</span> <span class="nf">merc_x</span><span class="p">(</span><span class="nv">$lon</span><span class="p">)</span> <span class="p">{</span> <span class="nv">$r_major</span> <span class="o">=</span> <span class="mf">6378137.000</span><span class="p">;</span> <span class="k">return</span> <span class="nv">$r_major</span> <span class="o">*</span> <span class="nb">deg2rad</span><span class="p">(</span><span class="nv">$lon</span><span class="p">);</span> <span class="p">}</span> <span class="k">function</span> <span class="nf">merc_y</span><span class="p">(</span><span class="nv">$lat</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nv">$lat</span> <span class="o">&gt;</span> <span class="mf">89.5</span><span class="p">)</span> <span class="nv">$lat</span> <span class="o">=</span> <span class="mf">89.5</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="nv">$lat</span> <span class="o">&lt;</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">)</span> <span class="nv">$lat</span> <span class="o">=</span> <span class="o">-</span><span class="mf">89.5</span><span class="p">;</span> <span class="nv">$r_major</span> <span class="o">=</span> <span class="mf">6378137.000</span><span class="p">;</span> <span class="nv">$r_minor</span> <span class="o">=</span> <span class="mf">6356752.3142</span><span class="p">;</span> <span class="nv">$temp</span> <span class="o">=</span> <span class="nv">$r_minor</span> <span class="o">/</span> <span class="nv">$r_major</span><span class="p">;</span> <span class="nv">$es</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">-</span> <span class="p">(</span><span class="nv">$temp</span> <span class="o">*</span> <span class="nv">$temp</span><span class="p">);</span> <span class="nv">$eccent</span> <span class="o">=</span> <span class="nb">sqrt</span><span class="p">(</span><span class="nv">$es</span><span class="p">);</span> <span class="nv">$phi</span> <span class="o">=</span> <span class="nb">deg2rad</span><span class="p">(</span><span class="nv">$lat</span><span class="p">);</span> <span class="nv">$sinphi</span> <span class="o">=</span> <span class="nb">sin</span><span class="p">(</span><span class="nv">$phi</span><span class="p">);</span> <span class="nv">$con</span> <span class="o">=</span> <span class="nv">$eccent</span> <span class="o">*</span> <span class="nv">$sinphi</span><span class="p">;</span> <span class="nv">$com</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="nv">$eccent</span><span class="p">;</span> <span class="nv">$con</span> <span class="o">=</span> <span class="nb">pow</span><span class="p">((</span><span class="mf">1.0</span><span class="o">-</span><span class="nv">$con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="nv">$con</span><span class="p">),</span> <span class="nv">$com</span><span class="p">);</span> <span class="nv">$ts</span> <span class="o">=</span> <span class="nb">tan</span><span class="p">(</span><span class="mf">0.5</span> <span class="o">*</span> <span class="p">((</span><span class="nx">M_PI</span><span class="o">*</span><span class="mf">0.5</span><span class="p">)</span> <span class="o">-</span> <span class="nv">$phi</span><span class="p">))</span><span class="o">/</span><span class="nv">$con</span><span class="p">;</span> <span class="nv">$y</span> <span class="o">=</span> <span class="o">-</span> <span class="nv">$r_major</span> <span class="o">*</span> <span class="nb">log</span><span class="p">(</span><span class="nv">$ts</span><span class="p">);</span> <span class="k">return</span> <span class="nv">$y</span><span class="p">;</span> <span class="p">}</span> <span class="k">function</span> <span class="nf">merc</span><span class="p">(</span><span class="nv">$x</span><span class="p">,</span><span class="nv">$y</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="k">array</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="o">=&gt;</span><span class="nx">merc_x</span><span class="p">(</span><span class="nv">$x</span><span class="p">),</span><span class="s1">&#39;y&#39;</span><span class="o">=&gt;</span><span class="nx">merc_y</span><span class="p">(</span><span class="nv">$y</span><span class="p">));</span> <span class="p">}</span> <span class="nv">$array</span> <span class="o">=</span> <span class="nx">merc</span><span class="p">(</span><span class="mi">122</span><span class="p">,</span><span class="mi">11</span><span class="p">);</span> </pre></div> <h3><span class="mw-headline" id="Python_implementation">Python implementation</span></h3> <p><i>Python Implementation by Paulo Silva, based on all code published above, 13:32, 15.2.2008</i> </p> <div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span></span><span class="kn">import</span> <span class="nn">math</span> <span class="k">def</span> <span class="nf">merc_x</span><span class="p">(</span><span class="n">lon</span><span class="p">):</span> <span class="n">r_major</span><span class="o">=</span><span class="mf">6378137.000</span> <span class="k">return</span> <span class="n">r_major</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">radians</span><span class="p">(</span><span class="n">lon</span><span class="p">)</span> <span class="k">def</span> <span class="nf">merc_y</span><span class="p">(</span><span class="n">lat</span><span class="p">):</span> <span class="k">if</span> <span class="n">lat</span><span class="o">&gt;</span><span class="mf">89.5</span><span class="p">:</span><span class="n">lat</span><span class="o">=</span><span class="mf">89.5</span> <span class="k">if</span> <span class="n">lat</span><span class="o">&lt;-</span><span class="mf">89.5</span><span class="p">:</span><span class="n">lat</span><span class="o">=-</span><span class="mf">89.5</span> <span class="n">r_major</span><span class="o">=</span><span class="mf">6378137.000</span> <span class="n">r_minor</span><span class="o">=</span><span class="mf">6356752.3142</span> <span class="n">temp</span><span class="o">=</span><span class="n">r_minor</span><span class="o">/</span><span class="n">r_major</span> <span class="n">eccent</span><span class="o">=</span><span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mi">1</span><span class="o">-</span><span class="n">temp</span><span class="o">**</span><span class="mi">2</span><span class="p">)</span> <span class="n">phi</span><span class="o">=</span><span class="n">math</span><span class="o">.</span><span class="n">radians</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span> <span class="n">sinphi</span><span class="o">=</span><span class="n">math</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">phi</span><span class="p">)</span> <span class="n">con</span><span class="o">=</span><span class="n">eccent</span><span class="o">*</span><span class="n">sinphi</span> <span class="n">com</span><span class="o">=</span><span class="n">eccent</span><span class="o">/</span><span class="mi">2</span> <span class="n">con</span><span class="o">=</span><span class="p">((</span><span class="mf">1.0</span><span class="o">-</span><span class="n">con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="n">con</span><span class="p">))</span><span class="o">**</span><span class="n">com</span> <span class="n">ts</span><span class="o">=</span><span class="n">math</span><span class="o">.</span><span class="n">tan</span><span class="p">((</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="n">phi</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span><span class="o">/</span><span class="n">con</span> <span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="o">-</span><span class="n">r_major</span><span class="o">*</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">ts</span><span class="p">)</span> <span class="k">return</span> <span class="n">y</span> </pre></div> <h3><span class="mw-headline" id="sdlBasic_implementation">sdlBasic implementation</span></h3> <p><i>sdlBasic Implementation by Paulo Silva, based on all code published above, 12:33, 18.2.2008</i> </p> <div class="mw-highlight mw-highlight-lang-basic mw-content-ltr" dir="ltr"><pre><span></span><span class="vg">function</span><span class="w"> </span><span class="vg">deg_rad</span><span class="p">(</span><span class="vg">ang</span><span class="p">)</span><span class="o">:</span> <span class="w"> </span><span class="vg">tang</span><span class="o">=</span><span class="vg">ang</span> <span class="w"> </span><span class="vg">pi</span><span class="o">=</span><span class="mf">3.14159265359</span> <span class="w"> </span><span class="vg">deg_rad</span><span class="o">=</span><span class="vg">tang</span><span class="o">*</span><span class="p">(</span><span class="vg">pi</span><span class="o">/</span><span class="mf">180.0</span><span class="p">)</span> <span class="w"> </span><span class="vg">end</span><span class="w"> </span><span class="vg">function</span> <span class="vg">function</span><span class="w"> </span><span class="vg">merc_x</span><span class="p">(</span><span class="vg">lon</span><span class="p">)</span><span class="o">:</span> <span class="w"> </span><span class="vg">tlon</span><span class="o">=</span><span class="vg">lon</span> <span class="w"> </span><span class="vg">r_major</span><span class="o">=</span><span class="mf">6378137.0</span> <span class="w"> </span><span class="vg">merc_x</span><span class="o">=</span><span class="vg">r_major</span><span class="o">*</span><span class="vg">deg_rad</span><span class="p">(</span><span class="vg">tlon</span><span class="p">)</span> <span class="w"> </span><span class="vg">end</span><span class="w"> </span><span class="vg">function</span> <span class="vg">function</span><span class="w"> </span><span class="vg">merc_y</span><span class="p">(</span><span class="vg">lat</span><span class="p">)</span><span class="o">:</span> <span class="w"> </span><span class="vg">tlat</span><span class="o">=</span><span class="vg">lat</span> <span class="w"> </span><span class="vg">pi</span><span class="o">=</span><span class="mf">3.14159265359</span> <span class="w"> </span><span class="vg">if</span><span class="w"> </span><span class="vg">tlat</span><span class="o">&gt;</span><span class="mf">89.5</span><span class="w"> </span><span class="nl">then:</span><span class="vg">tlat</span><span class="o">=</span><span class="mf">89.5</span><span class="o">:</span><span class="w"> </span><span class="vg">end</span><span class="w"> </span><span class="vg">if</span> <span class="w"> </span><span class="vg">if</span><span class="w"> </span><span class="vg">tlat</span><span class="o">&lt;</span><span class="mf">-89.5</span><span class="w"> </span><span class="nl">then:</span><span class="vg">tlat</span><span class="o">=</span><span class="mf">-89.5</span><span class="o">:</span><span class="w"> </span><span class="vg">end</span><span class="w"> </span><span class="vg">if</span> <span class="w"> </span><span class="vg">r_major</span><span class="o">=</span><span class="mf">6378137.000</span> <span class="w"> </span><span class="vg">r_minor</span><span class="o">=</span><span class="mf">6356752.3142</span> <span class="w"> </span><span class="vg">temp</span><span class="o">=</span><span class="vg">r_minor</span><span class="o">/</span><span class="vg">r_major</span> <span class="w"> </span><span class="vg">es</span><span class="o">=</span><span class="il">1</span><span class="o">-</span><span class="p">(</span><span class="vg">temp</span><span class="o">*</span><span class="vg">temp</span><span class="p">)</span> <span class="w"> </span><span class="vg">eccent</span><span class="o">=</span><span class="vg">sqr</span><span class="p">(</span><span class="vg">es</span><span class="p">)</span> <span class="w"> </span><span class="vg">phi</span><span class="o">=</span><span class="p">(</span><span class="vg">tlat</span><span class="o">*</span><span class="vg">pi</span><span class="p">)</span><span class="o">/</span><span class="il">180</span> <span class="w"> </span><span class="vg">sinphi</span><span class="o">=</span><span class="vg">sin</span><span class="p">(</span><span class="vg">phi</span><span class="p">)</span> <span class="w"> </span><span class="vg">con</span><span class="o">=</span><span class="vg">eccent</span><span class="o">*</span><span class="vg">sinphi</span> <span class="w"> </span><span class="vg">com</span><span class="o">=</span><span class="mf">.5</span><span class="o">*</span><span class="vg">eccent</span> <span class="w"> </span><span class="vg">con</span><span class="o">=</span><span class="p">((</span><span class="mf">1.0</span><span class="o">-</span><span class="vg">con</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</span><span class="o">+</span><span class="vg">con</span><span class="p">))</span><span class="o">^</span><span class="vg">com</span> <span class="w"> </span><span class="vg">ts</span><span class="o">=</span><span class="vg">tan</span><span class="p">(</span><span class="mf">.5</span><span class="o">*</span><span class="p">((</span><span class="vg">pi</span><span class="o">*</span><span class="mf">0.5</span><span class="p">)</span><span class="o">-</span><span class="vg">phi</span><span class="p">))</span><span class="o">/</span><span class="vg">con</span> <span class="w"> </span><span class="vg">y</span><span class="o">=</span><span class="il">0</span><span class="o">-</span><span class="vg">r_major</span><span class="o">*</span><span class="vg">log</span><span class="p">(</span><span class="vg">ts</span><span class="p">)</span> <span class="w"> </span><span class="vg">merc_y</span><span class="o">=</span><span class="vg">y</span> <span class="w"> </span><span class="vg">end</span><span class="w"> </span><span class="vg">function</span> </pre></div> <h3><span id="bash-script_.28bc.29_implementation"></span><span class="mw-headline" id="bash-script_(bc)_implementation">bash-script (bc) implementation</span></h3> <p><i>bash-script by Frank Baettermann, 18.05.2008</i> </p> <div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span></span><span class="ch">#!/bin/bash</span> <span class="c1"># Compute Mercator tile-coordinates</span> <span class="k">if</span> <span class="o">[</span> <span class="nv">$#</span> -ne <span class="m">3</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span> <span class="nb">echo</span> <span class="s2">&quot;Usage: </span><span class="nv">$0</span><span class="s2"> LATITUDE LONGITUDE ZOOM&quot;</span> <span class="nb">exit</span> <span class="m">1</span> <span class="k">fi</span> <span class="k">if</span> <span class="o">[</span> -z <span class="s2">&quot;`which bc 2&gt; /dev/null`&quot;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span> <span class="nb">echo</span> <span class="s2">&quot;ERROR: Could not find bc! Try to install it: sudo apt install bc&quot;</span> <span class="nb">exit</span> <span class="m">1</span> <span class="k">fi</span> <span class="nv">LATITUDE</span><span class="o">=</span><span class="nv">$1</span> <span class="nv">LONGITUDE</span><span class="o">=</span><span class="nv">$2</span> <span class="nv">ZOOM</span><span class="o">=</span><span class="nv">$3</span> <span class="c1"># total width and height in tiles</span> <span class="nv">MAP_SIZE</span><span class="o">=</span><span class="k">$((</span><span class="m">2</span><span class="o">**</span><span class="nv">$ZOOM</span><span class="k">))</span> <span class="nb">echo</span> <span class="s2">&quot;map_size=</span><span class="nv">$MAP_SIZE</span><span class="s2">&quot;</span> <span class="c1"># longitude -&gt; x</span> <span class="nb">echo</span> <span class="s2">&quot;tile_x=`echo &quot;</span><span class="o">(</span><span class="nv">$LONGITUDE</span> + <span class="m">180</span><span class="o">)</span> * <span class="nv">$MAP_SIZE</span> / <span class="m">360</span><span class="s2">&quot; | bc`&quot;</span> <span class="c1"># latitude -&gt; y</span> <span class="nb">echo</span> <span class="s2">&quot;tile_y=`echo &quot;</span><span class="se">\</span> <span class="nv">scale</span><span class="o">=</span><span class="m">10</span><span class="p">;</span> <span class="se">\</span> <span class="nv">phi</span><span class="o">=</span><span class="nv">$LATITUDE</span><span class="p">;</span> <span class="se">\</span> <span class="nv">mapsize</span><span class="o">=</span><span class="nv">$MAP_SIZE</span><span class="p">;</span> <span class="se">\</span> <span class="nv">pi</span><span class="o">=</span><span class="m">3</span>.1415926535<span class="p">;</span> <span class="se">\</span> <span class="nv">phi_rad</span><span class="o">=</span>phi*2*pi/360<span class="p">;</span> <span class="se">\</span> <span class="nv">mercator</span><span class="o">=</span>l<span class="o">((</span><span class="m">1</span>+s<span class="o">(</span>phi_rad<span class="o">))</span>/<span class="o">(</span><span class="m">1</span>-s<span class="o">(</span>phi_rad<span class="o">)))</span>/<span class="o">(</span><span class="m">2</span><span class="o">)</span><span class="p">;</span> <span class="se">\</span> <span class="nv">tile</span><span class="o">=(</span><span class="m">1</span>-mercator/pi<span class="o">)</span>*<span class="o">(</span>mapsize/2<span class="o">)</span><span class="p">;</span> <span class="se">\</span> <span class="nv">scale</span><span class="o">=</span><span class="m">0</span><span class="p">;</span> tile/1<span class="s2">&quot; \</span> <span class="s2"> | bc -l`&quot;</span> </pre></div> <h3><span class="mw-headline" id="VBA_for_Office_implementation">VBA for Office implementation</span></h3> <p>Copy into a module to use as an Excel function </p><p>Based on JavaScript Code above by Benjamin Judd </p> <div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span></span><span class="k">Function</span><span class="w"> </span><span class="nf">deg_rad</span><span class="p">(</span><span class="n">deg</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="w"> </span><span class="n">deg_rad</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deg</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Excel</span><span class="p">.</span><span class="n">WorksheetFunction</span><span class="p">.</span><span class="n">Pi</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">180</span><span class="w"></span> <span class="k">End</span><span class="w"> </span><span class="k">Function</span><span class="w"></span> <span class="k">Function</span><span class="w"> </span><span class="nf">merc_x</span><span class="p">(</span><span class="n">lon</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="w"> </span><span class="k">Dim</span><span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">6378137</span><span class="w"></span> <span class="w"> </span><span class="n">merc_x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">deg_rad</span><span class="p">(</span><span class="n">lon</span><span class="p">)</span><span class="w"></span> <span class="k">End</span><span class="w"> </span><span class="k">Function</span><span class="w"></span> <span class="k">Function</span><span class="w"> </span><span class="nf">merc_y</span><span class="p">(</span><span class="n">lat</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">)</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="k">If</span><span class="w"> </span><span class="p">(</span><span class="n">lat</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">89.5</span><span class="p">)</span><span class="w"> </span><span class="k">Then</span><span class="w"> </span><span class="n">lat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">89.5</span><span class="w"></span> <span class="k">If</span><span class="w"> </span><span class="p">(</span><span class="n">lat</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="o">-</span><span class="mf">89.5</span><span class="p">)</span><span class="w"> </span><span class="k">Then</span><span class="w"> </span><span class="n">lat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">-</span><span class="mf">89.5</span><span class="w"></span> <span class="k">Dim</span><span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">r_minor</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">es</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">eccent</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="k">Dim</span><span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">sinphi</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">com</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="p">,</span><span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Double</span><span class="w"></span> <span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">6378137</span><span class="w"></span> <span class="w"> </span><span class="n">r_minor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">6356752.3142</span><span class="w"></span> <span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r_minor</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">r_major</span><span class="w"></span> <span class="w"> </span><span class="n">es</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="mi">2</span><span class="w"></span> <span class="w"> </span><span class="n">eccent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Sqr</span><span class="p">(</span><span class="n">es</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="n">phi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">deg_rad</span><span class="p">(</span><span class="n">lat</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="n">sinphi</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Sin</span><span class="p">(</span><span class="n">phi</span><span class="p">)</span><span class="w"></span> <span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">eccent</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">sinphi</span><span class="w"></span> <span class="w"> </span><span class="n">com</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0.5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">eccent</span><span class="w"></span> <span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">con</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">con</span><span class="p">)</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="n">com</span><span class="w"></span> <span class="w"> </span><span class="n">ts</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Tan</span><span class="p">(</span><span class="mf">0.5</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">((</span><span class="n">Excel</span><span class="p">.</span><span class="n">WorksheetFunction</span><span class="p">.</span><span class="n">Pi</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">0.5</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">phi</span><span class="p">))</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">con</span><span class="w"></span> <span class="w"> </span><span class="n">merc_y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">r_major</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Log</span><span class="p">(</span><span class="n">ts</span><span class="p">)</span><span class="w"></span> <span class="k">End</span><span class="w"> </span><span class="k">Function</span><span class="w"></span> </pre></div> <h2><span class="mw-headline" id="Links">Links</span></h2> <ul><li><a rel="nofollow" class="external text" href="http://mal2.ch/stuff/latlontomercator.html">Lat/Lon to Mercator online converter</a></li></ul> <!-- NewPP limit report Cached time: 20250213203038 Cache expiry: 86400 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.327 seconds Real time usage: 0.400 seconds Preprocessor visited node count: 468/1000000 Post‐expand include size: 17036/2097152 bytes Template argument size: 54/2097152 bytes Highest expansion depth: 11/100 Expensive parser function count: 7/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 135865/5000000 bytes Lua time usage: 0.050/15 seconds Lua virtual size: 6385664/52428800 bytes Lua estimated memory usage: 0 bytes Number of Wikibase entities loaded: 0/250 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 110.668 1 -total 66.92% 74.057 1 Template:Languages 32.48% 35.945 1 Template:Wikipedia 28.48% 31.522 1 Template:LangSwitch 9.90% 10.961 1 Template:Langcode 1.73% 1.917 1 Template:Purge --> <!-- Saved in parser cache with key wiki:pcache:idhash:4278-0!canonical and timestamp 20250213203037 and revision id 2745139. --> </div> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://wiki.openstreetmap.org/w/index.php?title=Mercator&amp;oldid=2745139">https://wiki.openstreetmap.org/w/index.php?title=Mercator&amp;oldid=2745139</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Category</a>: <ul><li><a href="/wiki/Category:Map_projections" title="Category:Map projections">Map projections</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Pages_using_deprecated_source_tags" title="Category:Pages using deprecated source tags">Pages using deprecated source tags</a></li><li><a href="/wiki/Category:Pages_with_syntax_highlighting_errors" title="Category:Pages with syntax highlighting errors">Pages with syntax highlighting errors</a></li><li><a href="/wiki/Category:Pages_unavailable_in_German" title="Category:Pages unavailable in German">Pages unavailable in German</a></li><li><a href="/wiki/Category:Pages_unavailable_in_Spanish" title="Category:Pages unavailable in Spanish">Pages unavailable in Spanish</a></li><li><a href="/wiki/Category:Pages_unavailable_in_French" title="Category:Pages unavailable in French">Pages unavailable in French</a></li><li><a href="/wiki/Category:Pages_unavailable_in_Italian" title="Category:Pages unavailable in Italian">Pages unavailable in Italian</a></li><li><a href="/wiki/Category:Pages_unavailable_in_Dutch" title="Category:Pages unavailable in Dutch">Pages unavailable in Dutch</a></li><li><a href="/wiki/Category:Pages_unavailable_in_Russian" title="Category:Pages unavailable in Russian">Pages unavailable in Russian</a></li><li><a href="/wiki/Category:Pages_unavailable_in_Japanese" title="Category:Pages unavailable in Japanese">Pages unavailable in Japanese</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Navigation menu</h2> <div id="mw-head"> <nav id="p-personal" class="vector-menu mw-portlet mw-portlet-personal vector-user-menu-legacy" aria-labelledby="p-personal-label" role="navigation" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Personal tools</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"><li id="pt-uls" class="mw-list-item active"><a class="uls-trigger" href="#"><span>English</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Mercator" title="You are encouraged to create an account and log in; however, it is not mandatory"><span>Create account</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Mercator" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span>Log in</span></a></li></ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="vector-menu mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy" aria-labelledby="p-namespaces-label" role="navigation" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Namespaces</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"><li id="ca-nstab-main" class="selected mw-list-item"><a href="/wiki/Mercator" title="View the content page [c]" accesskey="c"><span>Page</span></a></li><li id="ca-talk" class="mw-list-item"><a href="/wiki/Talk:Mercator" rel="discussion" title="Discussion about the content page [t]" accesskey="t"><span>Discussion</span></a></li></ul> </div> </nav> <nav id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown" aria-labelledby="p-variants-label" role="navigation" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" /> <label id="p-variants-label" aria-label="Change language variant" class="vector-menu-heading " > <span class="vector-menu-heading-label">English</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"></ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="vector-menu mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy" aria-labelledby="p-views-label" role="navigation" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Views</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"><li id="ca-view" class="selected mw-list-item"><a href="/wiki/Mercator"><span>Read</span></a></li><li id="ca-viewsource" class="mw-list-item"><a href="/w/index.php?title=Mercator&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=Mercator&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li></ul> </div> </nav> <nav id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown" aria-labelledby="p-cactions-label" role="navigation" title="More options" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" /> <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">More</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"></ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <div> <h3 > <label for="searchInput">Search</label> </h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Search OpenStreetMap Wiki" aria-label="Search OpenStreetMap Wiki" autocapitalize="sentences" title="Search OpenStreetMap Wiki [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Special:Search"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Search the pages for this text" value="Search"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Go to a page with this exact name if it exists" value="Go"> </div> </form> </div> </div> </div> </div> <div id="mw-panel"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/Main_Page" title="Visit the main page"></a> </div> <nav id="p-site" class="vector-menu mw-portlet mw-portlet-site vector-menu-portal portal" aria-labelledby="p-site-label" role="navigation" > <h3 id="p-site-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Site</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"><li id="n-mainpage" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main Page</span></a></li><li id="n-osm-homepage" class="mw-list-item"><a href="https://www.openstreetmap.org/"><span>The map</span></a></li><li id="n-mapfeatures" class="mw-list-item"><a href="/wiki/Map_features"><span>Map Features</span></a></li><li id="n-contributors" class="mw-list-item"><a href="/wiki/Contributors"><span>Contributors</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Get_help" title="The place to find out"><span>Help</span></a></li><li id="n-blogs" class="mw-list-item"><a href="/wiki/OSM_Blogs"><span>Blogs</span></a></li><li id="n-Shop" class="mw-list-item"><a href="/wiki/Merchandise"><span>Shop</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="/wiki/Donations"><span>Donations</span></a></li><li id="n-talk-wiki" class="mw-list-item"><a href="/wiki/Talk:Wiki"><span>Wiki discussion</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li></ul> </div> </nav> <nav id="p-tb" class="vector-menu mw-portlet mw-portlet-tb vector-menu-portal portal" aria-labelledby="p-tb-label" role="navigation" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Tools</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"><li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Mercator" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Mercator" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Mercator&amp;oldid=2745139" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Mercator&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Mercator&amp;id=2745139&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li></ul> </div> </nav> <nav id="p-lang" class="vector-menu mw-portlet mw-portlet-lang vector-menu-portal portal" aria-labelledby="p-lang-label" role="navigation" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In other languages</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"></ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-add wb-langlinks-link"><a href="https://wiki.openstreetmap.org/wiki/Special:NewItem?site=wiki&amp;page=Mercator" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" role="contentinfo" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 19 August 2024, at 09:09.</li> <li id="footer-info-copyright">Content is available under <a href="/wiki/Wiki_content_license" title="Wiki content license">Creative Commons Attribution-ShareAlike 2.0 license</a> unless otherwise noted.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://www.osmfoundation.org/wiki/Privacy_Policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/About">About OpenStreetMap Wiki</a></li> <li id="footer-places-disclaimer"><a href="/wiki/Disclaimer">Disclaimers</a></li> <li id="footer-places-mobileview"><a href="//wiki.openstreetmap.org/w/index.php?title=Mercator&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://creativecommons.org/licenses/by-sa/2.0/"><img src="/cc-wiki.png" alt="Creative Commons Attribution-ShareAlike 2.0 license" width="88" height="31" loading="lazy"/></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="/w/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/w/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /w/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31" loading="lazy"/></a></li> </ul> </footer> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.327","walltime":"0.400","ppvisitednodes":{"value":468,"limit":1000000},"postexpandincludesize":{"value":17036,"limit":2097152},"templateargumentsize":{"value":54,"limit":2097152},"expansiondepth":{"value":11,"limit":100},"expensivefunctioncount":{"value":7,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":135865,"limit":5000000},"entityaccesscount":{"value":0,"limit":250},"timingprofile":["100.00% 110.668 1 -total"," 66.92% 74.057 1 Template:Languages"," 32.48% 35.945 1 Template:Wikipedia"," 28.48% 31.522 1 Template:LangSwitch"," 9.90% 10.961 1 Template:Langcode"," 1.73% 1.917 1 Template:Purge"]},"scribunto":{"limitreport-timeusage":{"value":"0.050","limit":"15"},"limitreport-virtmemusage":{"value":6385664,"limit":52428800},"limitreport-estmemusage":0},"cachereport":{"timestamp":"20250213203038","ttl":86400,"transientcontent":false}}});mw.config.set({"wgBackendResponseTime":191});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10