result.hits.hits.forEach(function(hit) { var x = hit._source.project.location.lon; var y = hit._source.project.location.lat; var name = hit._source.project.name; var pop2005 = hit._source.project.pop2005; //console.log('x: ' + x + ' y: ' + y); mem_ds.add({ 'x' : x, 'y' : y, 'properties' : { 'NAME': name, 'pop2005': pop2005 } }); });
function(err, map) { if (err) { cb(err, undefined) } var options = { extent: '-20037508.342789,-8283343.693883,20037508.342789,18365151.363070' }; var mem_ds = new mapnik.MemoryDatasource({}); var proj = new mapnik.Projection('+init=epsg:3857'); body.hits.hits.forEach(function(hit) { var xy = proj.forward([hit._source.geopoint.lon, hit._source.geopoint.lat]); var f = { 'x': xy[0], 'y': xy[1], 'properties': { 'id': hit._id, 'lat': hit._source.geopoint.lat, 'lon': hit._source.geopoint.lon } } if (hit._source[map_def.style.styleOn]) { f["properties"][map_def.style.styleOn] = hit._source[map_def.style.styleOn] } else { f["properties"][map_def.style.styleOn] = ""; } mem_ds.add(f); }); var l = new mapnik.Layer('test'); l.srs = map.srs; l.styles = ['style']; l.datasource = mem_ds; map.add_layer(l); map.extent = bbox; if (render_type === "grid.json") { var grid = new mapnik.Grid(map.width, map.height, {key: "id"}); var options = {layer: 0, "fields": [map_def.style.styleOn,"lat","lon"]} map.render(grid, options, function(err, grid2) { cb(err, grid2.encodeSync({"format": "utf"})); }); } else { var im = new mapnik.Image(map.width, map.height); map.render(im, function(err, im) { cb(err, im.encodeSync('png')); }); } }
body.hits.hits.forEach(function(hit) { var xy = proj.forward([hit._source.geopoint.lon, hit._source.geopoint.lat]); var f = { 'x': xy[0], 'y': xy[1], 'properties': { 'id': hit._id, 'lat': hit._source.geopoint.lat, 'lon': hit._source.geopoint.lon } } if (hit._source[map_def.style.styleOn]) { f["properties"][map_def.style.styleOn] = hit._source[map_def.style.styleOn] } else { f["properties"][map_def.style.styleOn] = ""; } mem_ds.add(f); });
var map = new mapnik.Map(256, 256); map.fromStringSync(s); // go get some arbitrary data that we can stream var shp = path.join(__dirname, '../data/world_merc'); var ds = new mapnik.Datasource({ type: 'shape', file: shp }); // get the featureset that exposes lazy next() iterator var featureset = ds.featureset(); var mem_datasource = new mapnik.MemoryDatasource( {'extent': '-20037508.342789,-8283343.693883,20037508.342789,18365151.363070'} ); // build up memory datasource while ((feat = featureset.next(true))) { var e = feat.extent(); // center longitude of polygon bbox var x = (e[0] + e[2]) / 2; // center latitude of polygon bbox var y = (e[1] + e[3]) / 2; var attr = feat.attributes(); mem_datasource.add({ 'x' : x, 'y' : y, 'properties' : { 'feat_id': feat.id(), 'NAME': attr.NAME, 'POP2005': attr.POP2005 } }); }
function(err, map) { if (err) { res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end(err.message); } var options = { extent: '-20037508.342789,-8283343.693883,20037508.342789,18365151.363070' }; var mem_ds = new mapnik.MemoryDatasource(options); var el_query = { 'size': 100, 'query' : { 'match_all' : {} }, 'filter' : { 'geo_bounding_box' : { 'project.location' : { 'top_left' : { 'lat' : bbox[3], 'lon' : bbox[0] }, 'bottom_right' : { 'lat' : bbox[1], 'lon' : bbox[2] } } } } }; search(el_query, function(result) { if (!result.hits.hits) { res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end('no elastic search results'); } else { //console.log(JSON.stringify(result.facets, null, 2)); //console.log(result.took + 'ms / ' + result.hits.total + ' results'); result.hits.hits.forEach(function(hit) { var x = hit._source.project.location.lon; var y = hit._source.project.location.lat; var name = hit._source.project.name; var pop2005 = hit._source.project.pop2005; //console.log('x: ' + x + ' y: ' + y); mem_ds.add({ 'x' : x, 'y' : y, 'properties' : { 'NAME': name, 'pop2005': pop2005 } }); }); var l = new mapnik.Layer('test'); l.srs = map.srs; l.styles = ['style']; l.datasource = mem_ds; map.add_layer(l); map.extent = bbox; var im = new mapnik.Image(map.width, map.height); map.render(im, function(err, im) { if (err) { res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end(err.message); } else { res.writeHead(200, { 'Content-Type': 'image/png' }); res.end(im.encodeSync('png')); } }); } }); }