Sasha Maps is a GWT-based SDK for displaying and interacting with maps in the browser (similar to the client side of Google Maps API).
Resources
- Sasha Maps SDK (released January 4th, 2014).
- A developer's tutorial (PDF).
- The changelog.
The Latest Release
This release is dedicated entirely to bugfixes, so unfortunately there are no juicy new features. The previous release had these highlights:- WebKit based browsers on Android 4.2 (and later) are now officially supported!
- You can now easily utilize high-resolution screens (like on the retina iPhone/iPad or Galaxy Nexus) to their full extent by scaling the tiles with just one method call. See the tutorial for details.
Read the full changelog and the updated tutorial.
Why Sasha Maps
Sasha Maps offers the following advantages over other map-displaying libraries:- Written in Java/GWT, allowing millions of Java developers to use their existing skills in developing web applications with maps. Several other map-displaying libraries offer GWT wrappers for their JavaScript, but this often results in clumsy APIs that feel awkward and inelegant to a Java developer.
- Compiles to standard HTML/Javascript. Many other map-displaying libraries require the user to install plugins, such as Flash or Silverlight. Sasha Maps results in standard HTML and Javascript code which runs on all modern browsers under any operating system (and now on iOS and Android too!).
- You get the source code. As a commercial licensee, you receive the full source code of Sasha Maps and are free to modify it as you like. This is extremely helpful for debugging and implementing certain features that require access to the innards of a library. It also means that you don't have to depend on anyone else for maintanance or trust them with your sensitive application/data (as you can inspect the source code yourself).
- A self-contained library with no external dependencies. Many other map-displaying libraries are hosted on their owner's servers and require you to "include" their script in your web page. This means that your users must have access to the internet and the library can't be used in a closed local network.
- A self-contained library with no external dependencies. When you use Sasha Maps, you have full control over it. Your application is hosted on your server and you are not dependent on another company to keep its servers up and running. You decide when to upgrade to a newer version of Sasha Maps and you don't have to rely on someone else to keep older versions available and/or bug-free.
- Designed to display your maps. Many other map-displaying libraries allow you to display your maps, but are generally geared towards displaying their own maps. Sasha Maps offers a convenient and straightforward API to implement support for your maps. On the other hand, it has ready-to-use implementations of many popular tile protocols (Web Map Service, OpenStreetMap, Google Maps).
- Complete and fast. With all the features you would expect for a map-displaying library, Sasha Maps is still as fast as any other similar library, and in many cases, faster. Animations are smooth and the UI is responsive.
- Mobile support. Sasha Maps works just as smoothly on iOS and Android devices as it does on the desktop. It supports all the touch gestures (dragging, pinching, tapping), exactly as you would expect.
Licensing
Sasha Maps is released under the Attribution-Noncommercial-Share Alike 3.0 Unported license. The source code released under this license is obfuscated. If you wish to obtain a license for commercial purposes, contact me at msasha@gmail.com. A commercial license costs $500 per application in which Sasha Maps is used. If you wish to receive the complete, unobfuscated source code with the license, it costs an additional $1000. You will receive free updates for a year with either option.
Map Data
Sasha Maps does not include any map data or tiles - it is merely a library allowing you to build an application which will show maps. To actually display maps on your website, you need to either use your own maps or obtain permission from the party which owns the map data and/or tiles. I am in no way encouraging, or responsible for, unauthorized use of anyone's map data and/or tiles.