2011-05-17 02:41:30 +08:00
<!DOCTYPE html>
< html >
< head >
2012-06-27 18:33:33 +08:00
< title > Leaflet - a JavaScript library for mobile-friendly interactive maps by CloudMade - Features< / title >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< meta charset = "utf-8" / >
2012-02-04 02:33:34 +08:00
< meta property = "og:title" content = "Leaflet — an open-source JavaScript library for interactive maps" / >
2011-05-17 02:41:30 +08:00
< meta property = "og:description" content = "Leaflet is a modern, lightweight BSD-licensed JavaScript library for making tile-based interactive maps for both desktop and mobile web browsers, developed by CloudMade to form the core of its next generation JavaScript API." / >
2012-02-04 02:33:34 +08:00
2012-02-14 23:02:29 +08:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
2011-05-17 02:41:30 +08:00
< link rel = "icon" type = "image/png" href = "docs/images/favicon.png" / >
<!-- Blueprint -->
< link rel = "stylesheet" href = "docs/css/blueprint/screen.css" media = "screen, projection" >
< link rel = "stylesheet" href = "docs/css/blueprint/print.css" media = "print" >
<!-- [if lt IE 8]><link rel="stylesheet" href="docs/css/blueprint/ie.css" media="screen, projection"><![endif] -->
< link rel = "stylesheet" href = "docs/css/screen.css" media = "screen, projection" / >
< script src = "docs/highlight/highlight.pack.js" > < / script >
< link rel = "stylesheet" href = "docs/highlight/styles/github.css" / >
<!-- Leaflet -->
< link rel = "stylesheet" href = "dist/leaflet.css" / >
<!-- [if lte IE 8]><link rel="stylesheet" href="dist/leaflet.ie.css" /><![endif] -->
< script src = "dist/leaflet.js" > < / script >
< / head >
< body >
< div class = "container" >
< h1 > Leaflet< / h1 >
2012-06-27 18:33:33 +08:00
< h3 class = "alt" > An Open-Source JavaScript Library for Mobile-Friendly Interactive Maps by < a href = "http://cloudmade.com" > CloudMade< / a > < / h3 >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< ul class = "nav clearfix" >
< li > < a href = "index.html" > Overview< / a > < / li >
2012-02-04 02:33:34 +08:00
< li > < span > Features< / span > < / li >
2012-06-27 18:33:33 +08:00
< li > < a href = "examples.html" > Tutorials< / a > < / li >
2012-02-04 02:33:34 +08:00
< li > < a href = "reference.html" > Documentation< / a > < / li >
< li > < a href = "download.html" > Download< / a > < / li >
2011-05-17 02:41:30 +08:00
< li > < a class = "twitter-link" href = "http://twitter.com/LeafletJS" > @LeafletJS< / a > < / li >
2012-02-04 02:33:34 +08:00
< li > < a class = "github-link" href = "http://github.com/CloudMade/Leaflet" > GitHub Repo< / a > < / li >
2011-05-17 02:41:30 +08:00
< / ul >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< p >
2012-02-04 02:33:34 +08:00
< iframe src = "http://markdotto.github.com/github-buttons/github-btn.html?user=CloudMade&repo=Leaflet&type=watch&count=true" allowtransparency = "true" frameborder = "0" scrolling = "0" width = "120px" height = "20px" > < / iframe >
< iframe src = "http://markdotto.github.com/github-buttons/github-btn.html?user=CloudMade&repo=Leaflet&type=fork&count=true" allowtransparency = "true" frameborder = "0" scrolling = "0" width = "100px" height = "20px" > < / iframe >
2011-06-17 19:04:48 +08:00
< a href = "http://twitter.com/share" class = "twitter-share-button" data-url = "http://leaflet.cloudmade.com" data-text = "Leaflet — a modern, lightweight open-source JavaScript library for interactive maps by @cloudmade" data-count = "horizontal" data-via = "LeafletJS" data-related = "CloudMade" > Tweet< / a >
2012-02-04 02:33:34 +08:00
< a href = "http://twitter.com/LeafletJS" data-show-count = "true" data-width = "235px" class = "twitter-follow-button" > Follow @LeafletJS< / a >
2011-06-17 19:04:48 +08:00
< script type = "text/javascript" src = "http://platform.twitter.com/widgets.js" > < / script >
2012-02-04 02:33:34 +08:00
< iframe src = "http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleaflet.cloudmade.com&layout=button_count&show_faces=false&width=430&action=like&font=arial&colorscheme=light&height=35" scrolling = "no" frameborder = "0" style = "border:none; overflow:hidden; width:200px; height:20px;" allowTransparency = "true" > < / iframe >
2011-05-17 02:41:30 +08:00
< / p >
2012-02-04 02:33:34 +08:00
< h3 > Leaflet features< / h3 >
< p > Leaflet doesn't try to do everything for everyone. Instead it focuses on making < em > the basic things work perfectly< / em > . It should still satisfy the needs of the vast majority of map apps developers while being flexible enough to be easily extended by writing third-party plugins.< / p >
2011-05-17 02:41:30 +08:00
< div class = "span-20" id = "features" >
< div class = "span-6" >
< h3 > Available map layers< / h3 >
< ul >
< li > Tile layers< / li >
2012-02-25 18:46:14 +08:00
< li > Vector layers: polylines, polygons, circles, circle markers< / li >
2011-05-17 02:41:30 +08:00
< li > Markers< / li >
< li > Popups< / li >
< li > Image overlays< / li >
< li > WMS layers< / li >
2011-06-17 07:09:56 +08:00
< li > GeoJSON< / li >
2011-05-17 02:41:30 +08:00
< / ul >
2012-02-04 02:33:34 +08:00
< h3 > Interaction features< / h3 >
2011-05-17 02:41:30 +08:00
< h4 > On desktop browsers< / h4 >
< ul >
< li > Drag panning< / li >
< li > Scroll wheel zoom< / li >
< li > Double click zoom< / li >
< li > Shift-drag zoom to bounding box< / li >
< / ul >
< h4 > On mobile browsers (iOS, Android)< / h4 >
< ul >
< li > Touch-drag panning< / li >
< li > Multi-touch zoom (iOS only)< / li >
< li > Double tap zoom< / li >
2012-02-25 18:46:14 +08:00
< / ul >
< h4 > Other features< / h4 >
< ul >
2011-05-17 02:41:30 +08:00
< li class = "noimpl" > Panning inertia< / li >
2012-02-25 18:46:14 +08:00
< li class = "noimpl" > Vector layers editing< / li >
2011-05-17 02:41:30 +08:00
< / ul >
2012-02-04 02:33:34 +08:00
< / div >
2011-05-17 02:41:30 +08:00
< div class = "span-9" >
< h3 > Visual features< / h3 >
< ul >
< li > Panning animation< / li >
2011-06-17 07:09:56 +08:00
< li > Zooming animation on modern browsers < span class = "quiet" > (except IE)< / span > < / li >
2011-05-17 02:41:30 +08:00
< li > Smooth continuous zoom on iOS< / li >
< li > Tile and popup fade animation< / li >
2012-02-25 18:46:14 +08:00
< li > Very nice default design for markers, popups and other map controls< / li >
2011-05-17 02:41:30 +08:00
< / ul >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< h3 > Customization features< / h3 >
< ul >
2011-07-13 20:10:13 +08:00
< li > Pure CSS3 popups and controls < span class = "quiet" > for easy restyling< / span > < / li >
2011-05-17 02:41:30 +08:00
<!-- <li>Customizable marker icons</li> -->
< li > < span class = "quiet" > A simple interface for implementing< / span > custom map layers< / li >
< li > < span class = "quiet" > The same for< / span > custom map controls< / li >
2011-06-17 07:09:56 +08:00
< li > Custom map projections < span class = "quiet" > (with < code > EPSG:4326< / code > , < code > EPSG:3857< / code > and < code > EPSG:3395< / code > out of the box)< / span > < / li >
2011-05-17 02:41:30 +08:00
< / ul >
< h3 > Performance features< / h3 >
< ul >
2012-02-25 18:46:14 +08:00
< li > Hardware acceleration on iOS < span class = "quiet" > (and other modern browsers) makes it feel as smooth as native apps< / span > < / li >
2011-06-17 07:09:56 +08:00
< li > < span class = "quiet" > Clever tricks to make< / span > panning and zooming really smooth< / li >
2011-05-17 02:41:30 +08:00
< li > Smart polyline/polygon rendering < span class = "quiet" > makes it responsive even when displaying objects with thousands of points< / span > < / li >
2012-02-25 18:46:14 +08:00
< li > Modular design and a build system< span class = "quiet" > allow you to reduce the size of the library by leaving out the code you don't need< / span > < / li >
2012-02-04 02:33:34 +08:00
< / ul >
2011-05-17 02:41:30 +08:00
< / div >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< div class = "span-5 last" >
< h3 > Map controls< / h3 >
< ul >
< li > Zoom buttons< / li >
< li > Attribution< / li >
2011-07-13 20:10:13 +08:00
< li > Layer switcher< / li >
2012-02-25 18:46:14 +08:00
< li class = "noimpl" > Scale< / li >
2011-05-17 02:41:30 +08:00
< / ul >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< h3 > Browser support< / h3 >
< h4 > On desktop< / h4 >
< ul >
< li > Firefox 3.6+< / li >
< li > Chrome< / li >
< li > Safari 5+< / li >
2011-05-20 21:37:35 +08:00
< li > Opera 11.11+< / li >
2011-05-17 02:41:30 +08:00
< li > IE 7– 9< / li >
< li > IE 6 < span class = "quiet" > (not perfect but accessible)< / span > < / li >
< / ul >
< h4 > On mobile< / h4 >
< ul >
2012-02-14 20:21:20 +08:00
< li > Safari for iOS 3/4/5+< / li >
< li > WebKit for Android 2.2+, 3.1+, 4+< / li >
2012-02-25 18:46:14 +08:00
< li class = "noimpl" > Other webkit-based browsers (webOS, Blackberry 6+, etc.)< / li >
2011-06-17 07:09:56 +08:00
< li class = "noimpl" > Windows Phone 7< / li >
< li class = "noimpl" > Firefox for Android< / li >
2011-05-17 02:41:30 +08:00
< / ul >
< / div >
< / div >
2012-02-04 02:33:34 +08:00
2012-02-25 18:46:14 +08:00
< p > If you find some feature really missing in Leaflet, please vote for it on the < a href = "https://leaflet.uservoice.com" > Leaflet UserVoice page< / a > .< / p >
2011-05-17 02:41:30 +08:00
2011-06-17 07:09:56 +08:00
< p class = "noimpl" > * Grayed out features are in the roadmap and coming soon.< / p >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< hr / >
2012-02-04 02:33:34 +08:00
2012-02-15 02:05:42 +08:00
< p class = "quiet" > © 2012 < a href = "http://cloudmade.com" > CloudMade< / a > . Map data © 2012 < a href = "http://openstreetmap.org" > OpenStreetMap< / a > contributors, < a href = "http://creativecommons.org/licenses/by-sa/2.0/" > CC-BY-SA< / a > .< / p >
2011-05-17 02:41:30 +08:00
< / div >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< a href = "http://github.com/CloudMade/Leaflet" > < img id = "forkme" src = "http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt = "Fork me on GitHub" / > < / a >
2012-02-04 02:33:34 +08:00
2011-05-17 02:41:30 +08:00
< script >
hljs.tabReplace = ' ';
hljs.initHighlightingOnLoad();
2012-02-04 02:33:34 +08:00
< / script >
2011-06-17 06:56:11 +08:00
< script type = "text/javascript" >
var _gaq = _gaq || [];
_gaq.push([ '_setAccount', 'UA-4147697-4' ]);
_gaq.push([ '_trackPageview' ]);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl'
: 'http://www')
+ '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
< / script >
2012-02-21 23:14:40 +08:00
< script type = "text/javascript" >
var uvOptions = {};
(function() {
var uv = document.createElement('script'); uv.type = 'text/javascript'; uv.async = true;
uv.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'widget.uservoice.com/ygv5CFpu3yBQFTFPOAdFg.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(uv, s);
})();
< / script >
2011-05-17 02:41:30 +08:00
< / body >
< / html >
2012-02-04 02:33:34 +08:00
<!-- <img border="0" width="90" src="http://github.com/images/modules/download/zip.png"></a> -->