We have been working on clustering for many years and we built maptimize, a SASS clustering engine. But we always thought that it would be better to be able to install our engine on your servers!
Our new version is based on the amazing Elasticsearch framework, flexible and powerful, distributed, real-time search and analytics engine. It's reliable and scalable.
May be you have already seen our demo the one million tweet map that displays the last million tweets over the world in real-time. Now you can create your own map!
We support current official and the previous release because many people already use it.
We'll keep our plugin up to date with new Elasticsearch releases.
It's two regular Elasticsearch plugins.
Just copy them on your Elasticsearch server plugin directory.
$ cd elasticsearch/plugins
$ bin/plugin -i maptimize_mapper -u http://dl.maptimize.com/maptimize_mapper-1.0.0.zip
$ bin/plugin -i maptimize_clusterer -u http://dl.maptimize.com/maptimize_clusterer-1.0.0.zip
To add maptimize on your Elasticsearch data, you only need to change on your geo mapping to a multifield with our new type.
"coordinates": {
"type": "string",
"index": "no",
"store": "no",
"fields": {
"coordinates_geo": {"type": "geo_point"},
"maptimize": {"type": "maptimize"}
}
}
With only two lines of Javascript code, and you'll connect your existing map with your clustered data.
var map = new L.Map('map_canvas',
{scrollWheelZoom: false}),
mapSystem = new maptimize.Leaflet(map),
mapController = new maptimize.MapController(mapSystem,
{key: KEY});
By supporting leaflet.js, it means it works with OpenStreetMap and MapBox. We also have a BingMap support.
If you use another mapping system, we can make a wrapper for you.
We don't add magic on mapping system API. You still use the mapping provider API, so you can imagine anything to render point on the map. We provided a classic clustering and also an heatmap rendering. But you can create your own astonishing rendering.
You can get aggregated values on cluster based on your own data. you can change clusters with pie chart for example, on anything else you can imagine.
If you don't use Elasticsearch on your application, it's not a problem (but we strongly encourage you to have a look at all Elasticsearch features!). You can install Elasticsearch on your server and automatically sync your data.
It's very easy, there is a REST API.
And there provide a lot of clients for ruby, python, php, perl, node, ...