Skip to content

Instantly share code, notes, and snippets.

@jbt
Last active December 14, 2015 15:29
Show Gist options
  • Save jbt/5108292 to your computer and use it in GitHub Desktop.
Save jbt/5108292 to your computer and use it in GitHub Desktop.
Example use of GoSquared polymaps fork.
<!DOCTYPE html>
<html>
<head>
<title>Polymaps Example</title>
<script src="polymaps.min.js"></script><!-- polymaps from gosquared/polymaps -->
</head>
<body>
<svg id="map" width="1000" height="800"></svg>
<script>
var po = org.polymaps;
var map = po.map()
.container(document.getElementById('map'))
.tileSize({ x: 256, y: 256 })
.zoomRange([ 0.5, 5 ])
.zoom(1)
.add(po.interact());
var layer;
map.add(layer = po.layer(makeMapTile, destroyMapTile));
function makeMapTile(tile){
var zoomSize = Math.pow(2, tile.zoom + 1),
size = map.tileSize();
var column = tile.column % zoomSize;
while(column < 0) column += zoomSize;
var row = tile.row % (zoomSize / 2);
var img = tile.element = po.svg("image");
img.setAttribute('width', size.x);
img.setAttribute('height', size.y);
var src = 'http://static.gosquared.com/images/maptiles3/' + tile.zoom + '/' + row + '_' + column + '.png';
tile.request = po.queue.image(
img,
src,
function(){
delete tile.request;
tile.ready = true;
layer.dispatch({ type: 'load', tile: tile });
}
);
};
function destroyMapTile(tile){
if(tile.request) tile.request.abort(true);
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment