Skip to content

Instantly share code, notes, and snippets.

@waleedshkt
Last active April 21, 2020 16:17
Show Gist options
  • Save waleedshkt/c97165f930a409d5643106d9f746bd50 to your computer and use it in GitHub Desktop.
Save waleedshkt/c97165f930a409d5643106d9f746bd50 to your computer and use it in GitHub Desktop.
Zoom a single state with D3 v4
license: gpl-3.0
height: 250
border: no

Renders a single US state, using d3-zoom to fit the container, and to allow zooming and panning.

The desired behavior is to constrain panning to the bounds of the state. The TopoJSON is projected to 600x600, and at that container size, the zoom & pan works great. However, at smaller container sizes, where the map has been scaled, the panning is jumpy/broken. I've tried setting different values for translateExtent, but I don't realy understand how it's supposed to work.

One notable thing is that I'm using a null projection for d3.geoPath, because I used ogr2ogr to generate a shapefile in projected coordinates for each state. That's why I used a zoom transform to fit the map to its container.

References on bl.ocks.org:

var App = (function () {
"use strict";
var App = {
stateCode: window.location.search.substr(1) || 'ma'
};
d3.json("us-" + App.stateCode + ".json", ready);
function ready(error, topo) {
if (error) throw error;
App.state = topojson.feature(topo, topo.objects.state);
App.counties = topojson.feature(topo, topo.objects.counties).features;
App.div = d3.select('#app');
App.size = [
parseInt(App.div.style('width')), parseInt(App.div.style('height'))
];
App.path = d3.geoPath()
.projection(null);
App.transform = zoomBounds(App.path.bounds(App.state), App.size);
App.zoom = d3.zoom()
.translateExtent([[0, 0], App.size])
.scaleExtent([App.transform.k, App.transform.k * 2])
.on("zoom", zoomed);
App.svg = App.div.append("svg")
.call(App.zoom);
App.svg.append("rect")
.classed("background", true)
.on("click", reset);
App.g = App.svg.append("g")
.attr("transform", App.transform);
App.g.selectAll("path")
.data(App.counties)
.enter().append("path")
.classed("county", true)
.attr("d", App.path)
.on("click", clicked);
reset();
}
function zoomBounds(bounds, size) {
// Calculate dimensions of bounds
// and scale to fit inside container
var width = bounds[1][0] - bounds[0][0],
height = bounds[1][1] - bounds[0][1],
scale = 1 / Math.max(width / size[0], height / size[1]);
// Calculate center of bounds
// and difference from center of container
var x = (bounds[0][0] + bounds[1][0]) / 2,
y = (bounds[0][1] + bounds[1][1]) / 2,
translate = [size[0] / 2 - scale * x, size[1] / 2 - scale * y];
return d3.zoomIdentity
.translate(translate[0], translate[1])
.scale(scale);
}
function zoomed() {
App.g.attr("transform", d3.event.transform);
}
function reset() {
App.svg.call(App.zoom.transform, App.transform);
}
function clicked() {
App.svg.select(".active")
.classed("active", false);
d3.select(this)
.classed("active", true);
}
return App;
})();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>State Zooming</title>
<link href="style.css" rel="stylesheet">
</head>
<body>
<div id="app"></div>
<script src="//d3js.org/d3.v4.min.js"></script>
<script src="//d3js.org/topojson.v1.min.js"></script>
<script src="app.js"></script>
</body>
#app {
margin: 0 auto;
height: 200px;
width: 300px;
}
/*
@media screen and (min-width: 640px) {
#app {
height: 600px;
width: 600px;
}
}
*/
svg {
border: 1px solid #ccc;
display: block;
height: 100%;
width: 100%;
}
.background {
height: 100%;
width: 100%;
fill: none;
pointer-events: all;
}
.county {
fill: #ccc;
stroke: #fff;
stroke-linejoin: round;
}
.county.active {
fill: orange;
}
Display the source blob
Display the rendered blob
Raw
{"type":"Topology","objects":{"counties":{"type":"GeometryCollection","bbox":[1329828.6691696292,-2442781.498808591,4389657.045439509,978591.6633106058],"geometries":[{"type":"Polygon","properties":{"state":"CA","county":"Siskiyou County"},"id":6093,"arcs":[[0,1,2,3,4,5]]},{"type":"Polygon","properties":{"state":"CA","county":"Del Norte County"},"id":6015,"arcs":[[-5,6,7]]},{"type":"Polygon","properties":{"state":"CA","county":"Modoc County"},"id":6049,"arcs":[[8,9,-1,10]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Humboldt County"},"id":6023,"arcs":[[[-4,11,12,13,-7]]]},{"type":"Polygon","properties":{"state":"CA","county":"Trinity County"},"id":6105,"arcs":[[14,15,16,-12,-3]]},{"type":"Polygon","properties":{"state":"CA","county":"Lassen County"},"id":6035,"arcs":[[17,18,19,20,-9]]},{"type":"Polygon","properties":{"state":"CA","county":"Shasta County"},"id":6089,"arcs":[[-10,-21,21,22,-15,-2]]},{"type":"Polygon","properties":{"state":"CA","county":"Tehama County"},"id":6103,"arcs":[[23,24,25,26,-16,-23]]},{"type":"Polygon","properties":{"state":"CA","county":"Plumas County"},"id":6063,"arcs":[[-20,27,28,29,-24,-22]]},{"type":"Polygon","properties":{"state":"CA","county":"Butte County"},"id":6007,"arcs":[[30,31,32,33,-25,-30]]},{"type":"Polygon","properties":{"state":"CA","county":"Mendocino County"},"id":6045,"arcs":[[-17,-27,34,35,36,37,-13]]},{"type":"Polygon","properties":{"state":"CA","county":"Glenn County"},"id":6021,"arcs":[[-34,38,39,-35,-26]]},{"type":"Polygon","properties":{"state":"CA","county":"Sierra County"},"id":6091,"arcs":[[-19,40,41,42,-28]]},{"type":"Polygon","properties":{"state":"CA","county":"Yuba County"},"id":6115,"arcs":[[-43,43,44,45,-31,-29]]},{"type":"Polygon","properties":{"state":"CA","county":"Lake County"},"id":6033,"arcs":[[46,47,48,49,-36,-40]]},{"type":"Polygon","properties":{"state":"CA","county":"Nevada County"},"id":6057,"arcs":[[50,51,-44,-42]]},{"type":"Polygon","properties":{"state":"CA","county":"Colusa County"},"id":6011,"arcs":[[-33,52,53,-47,-39]]},{"type":"Polygon","properties":{"state":"CA","county":"Placer County"},"id":6061,"arcs":[[54,55,56,57,-45,-52]]},{"type":"Polygon","properties":{"state":"CA","county":"Sutter County"},"id":6101,"arcs":[[-46,-58,58,59,-53,-32]]},{"type":"Polygon","properties":{"state":"CA","county":"El Dorado County"},"id":6017,"arcs":[[60,61,62,63,-56]]},{"type":"Polygon","properties":{"state":"CA","county":"Alpine County"},"id":6003,"arcs":[[64,65,66,67,-62,68]]},{"type":"Polygon","properties":{"state":"CA","county":"Yolo County"},"id":6113,"arcs":[[-60,69,70,71,-48,-54]]},{"type":"Polygon","properties":{"state":"CA","county":"Napa County"},"id":6055,"arcs":[[72,73,74,75,76,-49,-72]]},{"type":"Polygon","properties":{"state":"CA","county":"Sonoma County"},"id":6097,"arcs":[[-50,-77,77,78,79,-37]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Sacramento County"},"id":6067,"arcs":[[[80,81,82,83,-70,-59,-57,-64]]]},{"type":"Polygon","properties":{"state":"CA","county":"Mono County"},"id":6051,"arcs":[[84,85,86,87,-65,88]]},{"type":"Polygon","properties":{"state":"CA","county":"Amador County"},"id":6005,"arcs":[[-68,89,90,-81,-63]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Solano County"},"id":6095,"arcs":[[[91,-75]],[[-84,92,-73,-71]]]},{"type":"Polygon","properties":{"state":"CA","county":"Calaveras County"},"id":6009,"arcs":[[93,94,95,-90,-67]]},{"type":"Polygon","properties":{"state":"CA","county":"Tuolumne County"},"id":6109,"arcs":[[-88,96,97,98,-94,-66]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Marin County"},"id":6041,"arcs":[[[99,-79]]]},{"type":"Polygon","properties":{"state":"CA","county":"San Joaquin County"},"id":6077,"arcs":[[-91,-96,100,101,102,103,-82]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Contra Costa County"},"id":6013,"arcs":[[[-103,104,105]]]},{"type":"Polygon","properties":{"state":"CA","county":"Stanislaus County"},"id":6099,"arcs":[[106,107,108,-101,-95,-99]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Alameda County"},"id":6001,"arcs":[[[-102,-109,109,110,-105]]]},{"type":"Polygon","properties":{"state":"CA","county":"Mariposa County"},"id":6043,"arcs":[[111,112,-98]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"San Francisco County"},"id":6075,"arcs":[[[113,114]]]},{"type":"Polygon","properties":{"state":"CA","county":"Madera County"},"id":6039,"arcs":[[-87,115,116,-112,-97]]},{"type":"Polygon","properties":{"state":"CA","county":"San Mateo County"},"id":6081,"arcs":[[117,118,119,120,-114]]},{"type":"Polygon","properties":{"state":"CA","county":"Merced County"},"id":6047,"arcs":[[-117,121,122,123,-107,-113]]},{"type":"Polygon","properties":{"state":"CA","county":"Fresno County"},"id":6019,"arcs":[[124,125,126,127,128,-122,-116,-86]]},{"type":"Polygon","properties":{"state":"CA","county":"Santa Clara County"},"id":6085,"arcs":[[-108,-124,129,130,-119,131,-110]]},{"type":"Polygon","properties":{"state":"CA","county":"Inyo County"},"id":6027,"arcs":[[132,133,134,135,-125,-85]]},{"type":"Polygon","properties":{"state":"CA","county":"Santa Cruz County"},"id":6087,"arcs":[[136,137,138,-120,-131]]},{"type":"Polygon","properties":{"state":"CA","county":"San Benito County"},"id":6069,"arcs":[[-123,-129,139,-137,-130]]},{"type":"Polygon","properties":{"state":"CA","county":"Monterey County"},"id":6053,"arcs":[[-140,-128,140,141,142,-138]]},{"type":"Polygon","properties":{"state":"CA","county":"Tulare County"},"id":6107,"arcs":[[143,144,-126,-136]]},{"type":"Polygon","properties":{"state":"CA","county":"Kings County"},"id":6031,"arcs":[[145,146,-141,-127,-145]]},{"type":"Polygon","properties":{"state":"CA","county":"San Bernardino County"},"id":6071,"arcs":[[147,148,149,150,-134,151]]},{"type":"Polygon","properties":{"state":"CA","county":"San Luis Obispo County"},"id":6079,"arcs":[[-147,152,153,154,-142]]},{"type":"Polygon","properties":{"state":"CA","county":"Kern County"},"id":6029,"arcs":[[-151,155,156,157,-153,-146,-144,-135]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Santa Barbara County"},"id":6083,"arcs":[[[158]],[[159]],[[160]],[[-158,161,162,-154]]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Ventura County"},"id":6111,"arcs":[[[163]],[[164,-162,-157,165]]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Los Angeles County"},"id":6037,"arcs":[[[166]],[[167]],[[-150,168,169,-166,-156]]]},{"type":"Polygon","properties":{"state":"CA","county":"Riverside County"},"id":6065,"arcs":[[170,171,172,-148,173]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"Orange County"},"id":6059,"arcs":[[[-149,-173,174,175,-169]]]},{"type":"MultiPolygon","properties":{"state":"CA","county":"San Diego County"},"id":6073,"arcs":[[[176,177,-175,-172]]]},{"type":"Polygon","properties":{"state":"CA","county":"Imperial County"},"id":6025,"arcs":[[-177,-171,178]]}]},"state":{"type":"GeometryCollection","geometries":[{"type":"MultiPolygon","arcs":[[[17,40,50,54,60,68,88,132,151,173,178,177,175,169,164,162,154,142,138,120,114,117,131,110,105,103,82,92,73,91,75,77,99,79,37,13,7,5,10]],[[158]],[[159]],[[160]],[[163]],[[166]],[[167]]],"id":6,"properties":{"state":"CA"}}]}},"arcs":[[[2682,9977],[-8,-51],[8,-184],[7,-632]],[[2689,9110],[-946,-1]],[[1743,9109],[-22,33],[9,73],[30,41],[-81,51],[-17,-44],[-37,6],[-85,-89],[-70,-47],[-76,2],[-45,-29],[-35,-74],[68,-84],[-19,-37],[-60,22],[-48,-10],[-15,45],[-49,31],[-117,2],[-53,72],[-97,41]],[[924,9114],[-41,61],[10,41],[-47,115],[-145,2]],[[701,9333],[37,53],[-25,114],[-59,61],[56,125],[-36,123],[58,65],[67,13],[44,103]],[[843,9990],[121,-4],[209,8],[114,-8],[466,3],[929,-12]],[[701,9333],[-98,1],[2,90],[-264,4]],[[341,9428],[-28,147],[-56,151],[-76,43],[47,122],[-1,108],[348,-11],[268,2]],[[3990,9128],[-600,-11],[-598,-6]],[[2792,9111],[-103,-1]],[[2682,9977],[433,-1],[598,8],[255,7],[22,-863]],[[924,9114],[-47,-118],[46,-42],[-38,-90],[-32,-31],[-71,39],[-54,-19],[67,-215],[-13,-465],[-5,-311]],[[777,7862],[-438,7]],[[339,7869],[-51,33],[-26,78],[-70,31],[-154,138],[14,61],[-51,138],[77,182],[56,87],[43,-17],[39,123],[85,22],[5,28],[-56,18],[-49,-87],[-27,-14],[76,134],[33,106],[-35,77],[12,79],[38,95],[35,152],[8,95]],[[1743,9109],[47,-25],[-12,-67],[-73,-24],[10,-63],[-56,-32],[-10,-89],[-60,-81],[-5,-55],[-45,-34],[-29,-58],[52,-112],[-68,-26],[-30,-47],[-47,-10],[-45,-58],[-90,-29],[-60,-77],[-2,-62]],[[1220,8160],[72,-42],[13,-55],[-15,-56],[46,-177]],[[1336,7830],[-559,6],[0,26]],[[3990,9128],[32,-1154],[6,-402]],[[4028,7572],[-13,-15],[-120,-3]],[[3895,7554],[34,93],[-5,154],[-87,77],[-9,77],[-53,31],[-68,-2],[-97,64],[-43,62],[-79,52],[-69,23],[-100,8],[-30,-42],[-69,-39],[1,-45],[-52,-8],[-16,30],[-53,0],[-53,37],[-2,202],[-243,-3]],[[2802,8325],[4,56],[-1,435],[-11,-1],[-2,296]],[[2802,8325],[-154,0]],[[2648,8325],[-83,-16],[-76,20],[-56,-16],[-67,10],[-122,-32],[-57,12],[-279,-59],[-122,3],[-73,23],[-115,-70],[-81,40],[-126,-18],[-44,-43],[-57,5],[-70,-24]],[[2648,8325],[30,-103],[79,-10],[26,-82],[-15,-53],[-65,-19],[-4,-47]],[[2699,8011],[-51,-54],[-78,-1],[-54,-125],[-53,2],[-67,-102],[-242,-5],[-27,-47],[21,-45]],[[2148,7634],[-818,4]],[[1330,7638],[-19,49],[9,68],[28,10],[-12,65]],[[3895,7554],[-466,-10],[-24,-31],[-66,45],[-29,-11],[-83,70],[-57,-41],[-1,-49],[-66,-59]],[[3103,7468],[-61,-43]],[[3042,7425],[-58,32],[1,32],[-65,45],[-205,211],[7,122],[38,39],[1,60],[-62,45]],[[3042,7425],[-66,-45],[-10,-39],[-133,-1],[-62,-164],[-31,-28],[-201,-48]],[[2539,7100],[-6,11],[-257,-2]],[[2276,7109],[17,84]],[[2293,7193],[35,164],[-132,-3],[-3,142],[51,34],[-96,104]],[[1330,7638],[1,-51],[41,-42],[0,-137]],[[1372,7408],[0,-55],[-124,-11],[-37,-16],[-13,-102],[50,-92],[5,-91],[-32,-65],[-31,0],[-14,-108],[26,-8],[34,-74],[38,0],[35,-103],[120,-55]],[[1429,6628],[-243,5],[-56,-14],[1,-32],[-216,-1],[-3,-30],[-150,-7]],[[762,6549],[-103,84],[-84,113],[48,85],[-27,110],[-37,62],[-56,166],[8,99],[52,132],[-20,126],[-32,41],[-22,122],[-40,23],[-26,57],[-84,100]],[[2293,7193],[-106,1],[1,30],[-125,2],[0,-30],[-555,-1]],[[1508,7195],[6,211],[-142,2]],[[4028,7572],[6,-292]],[[4034,7280],[-464,-9],[-52,73],[-90,8],[-88,-78],[-243,-65]],[[3097,7209],[-14,128],[20,131]],[[3097,7209],[-99,-17],[-85,-104],[-43,-12],[-12,-44],[2,-208]],[[2860,6824],[-25,19],[-100,-61]],[[2735,6782],[-121,-26],[-30,-55],[-31,146],[22,32],[-47,164],[11,57]],[[1508,7195],[-34,-74],[116,-107],[124,-7],[35,-36],[-22,-58],[7,-70],[73,-36],[5,-63],[63,-40]],[[1875,6704],[-60,1],[8,-65]],[[1823,6640],[17,-38],[-82,-131],[-153,-39]],[[1605,6432],[-18,42],[-59,27],[-43,81],[-56,46]],[[4034,7280],[0,-141]],[[4034,7139],[-591,-11],[-76,-30],[-178,-136],[-60,-55],[-44,-101],[-63,-5],[-29,27],[-79,-28],[-54,24]],[[2276,7109],[-37,-69],[3,-65],[48,-107],[50,-14],[21,-81],[-16,-69]],[[2345,6704],[-470,0]],[[4034,7139],[11,-264]],[[4045,6875],[-130,-2],[-36,-39],[-53,-10],[-182,2],[-14,-44],[-55,-60],[-55,-20],[-76,36],[-66,53],[-85,-1],[-41,-51],[-74,12],[-107,-70],[-82,-200]],[[2989,6481],[-318,22]],[[2671,6503],[14,18],[1,186],[50,1],[-1,74]],[[2671,6503],[-110,0]],[[2561,6503],[-1,47],[-80,-16],[-33,94],[-84,25],[-18,51]],[[4045,6875],[3,-72],[92,-69]],[[4140,6734],[27,-67],[-78,-101],[-99,-81]],[[3990,6485],[-36,3],[-20,-64],[-75,-20],[-15,-44],[-79,-48],[-37,3],[-144,-41],[-109,-10],[-86,40],[-115,14],[-77,-45],[-94,-8]],[[3103,6265],[-88,220],[-26,-4]],[[4448,6503],[-30,-48],[-2,-65],[74,-111],[-21,-101],[-49,-13],[-14,-71]],[[4406,6094],[-58,40],[0,46],[-50,8],[-118,-64],[-134,80]],[[4046,6204],[-50,9],[-1,67]],[[3995,6280],[-5,205]],[[4140,6734],[308,-231]],[[2561,6503],[-29,-47],[116,-96],[0,-61],[-44,-48],[50,-29],[-22,-38],[8,-78],[-73,-52]],[[2567,6054],[-90,2],[0,224],[-84,-3],[-71,16],[-74,-6],[-72,-47],[-82,26]],[[2094,6266],[-31,98],[-52,62],[-88,188],[-57,-4],[-43,30]],[[2094,6266],[-22,-87],[48,-73],[10,-50],[-134,0],[-5,-72],[15,-98],[-90,0]],[[1916,5886],[-8,0]],[[1908,5886],[-99,0]],[[1809,5886],[-1,2]],[[1808,5888],[48,27],[-36,130],[-93,126],[15,27],[-47,23],[-48,85],[-60,53],[18,73]],[[1808,5888],[6,-23],[-91,-25],[-46,49]],[[1677,5889],[-17,25],[-79,0],[-85,28],[-152,118],[-93,-21]],[[1251,6039],[-52,44],[-65,122],[-113,65],[-76,60],[-112,158],[-71,61]],[[3103,6265],[5,-224]],[[3108,6041],[-168,-54],[-75,1],[-60,-24],[-118,33],[-53,-69],[-41,-92]],[[2593,5836],[-105,-25],[3,-24],[-61,-37],[-44,29],[80,31],[47,104]],[[2513,5914],[52,42],[2,98]],[[6148,5233],[-894,-36]],[[5254,5197],[-21,27],[-49,-13],[-68,75],[-102,35]],[[5014,5321],[-44,103],[-62,52],[-67,0],[-16,-24],[-50,25]],[[4775,5477],[60,61],[-12,112],[-51,13],[-56,60],[14,58],[-44,63],[-78,30],[-24,-22],[-30,38],[-84,27],[-50,37],[12,71],[-36,26],[10,43]],[[4448,6503],[1238,-926],[462,-344]],[[3995,6280],[-128,-12],[-62,-28],[-128,-10],[-179,-76],[-23,-64],[-161,-56],[-82,-73],[-95,3]],[[3137,5964],[-29,77]],[[1908,5886],[49,-83],[-24,-12],[-42,50],[-82,45]],[[2513,5914],[-77,-95],[-60,-33],[-36,15],[-84,-26],[18,33],[-57,-10],[-45,25],[17,44],[-52,-5],[-67,-93],[-105,29],[-49,88]],[[4046,6204],[-145,-71],[-73,-94],[-188,-296],[-68,-24],[19,-28],[-50,-74],[-78,-68]],[[3463,5549],[-261,259]],[[3202,5808],[-65,156]],[[4775,5477],[-39,41]],[[4736,5518],[-43,50],[-95,45],[-21,-17],[-58,49],[-115,-76],[4,-25],[-145,-62],[-52,16],[-76,-9],[-130,65],[-43,-51],[-53,12],[-15,-32],[-135,-42],[36,-64],[-18,-18],[-63,35],[5,-52]],[[3719,5342],[-256,207]],[[1677,5889],[55,-56],[-11,-96],[48,-33],[-42,-16],[-11,-44],[23,-110],[-48,-6],[-35,37],[-102,63],[-29,-19],[-73,58],[-35,52],[-111,47],[-48,-48],[-16,18],[54,137],[-40,107],[85,-102],[-19,63],[-44,30],[-27,68]],[[3202,5808],[6,-362],[-67,23],[-154,-48],[-60,-36],[-234,-217]],[[2693,5168],[-31,47],[-51,17],[-2,293]],[[2609,5525],[14,44],[-36,18],[18,57],[-21,120]],[[2584,5764],[9,72]],[[2609,5525],[-381,-106],[-80,85],[-133,24],[-73,89],[-45,-7]],[[1897,5610],[-74,14],[-8,46],[30,63],[63,-2],[37,45],[67,-1],[39,-32],[126,38],[224,-46],[41,6],[53,70],[67,16],[30,-29],[-58,-31],[50,-3]],[[3719,5342],[-568,-263],[24,-54],[-246,-223]],[[2929,4802],[-53,50],[-74,0],[-31,-39],[-64,144],[49,29],[-6,84],[-42,6],[-16,93]],[[2692,5169],[1,-1]],[[2692,5169],[-373,1],[-56,-32],[-59,9]],[[2204,5147],[-61,4],[-56,39],[-35,88],[-15,90],[-91,78],[49,0],[-36,44],[-90,21],[43,27],[-15,72]],[[4736,5518],[-253,-239],[3,-70],[-63,-38],[1,-47],[-107,-2],[-263,-253]],[[4054,4869],[-127,79],[-101,167],[-37,106],[-70,121]],[[1818,5409],[-103,0]],[[1715,5409],[-11,77],[108,28],[41,-83],[-35,-22]],[[5014,5321],[-269,-261],[-17,-39],[15,-69],[-20,-64],[-39,-42],[-43,13],[-35,-56],[-37,41],[-49,-8],[22,-43],[-28,-43],[-36,7],[-13,-48],[-73,-21],[-32,-66],[-78,-104],[-65,7],[-47,-25],[-138,-15],[-85,-24],[-58,-38],[-137,17],[3,24],[-85,54],[3,56],[-89,137]],[[3584,4711],[62,56],[112,27],[81,36],[157,19],[58,20]],[[1818,5409],[3,-82],[29,-41],[92,-22],[59,-36],[80,-78]],[[2081,5150],[-71,-36],[-12,-73],[48,-82]],[[2046,4959],[-2,-75],[-86,1],[-1,-28],[-72,-3],[27,-85]],[[1912,4769],[-35,5],[-70,87],[-15,58],[17,91],[-47,157],[-61,42],[22,129],[-8,71]],[[3584,4711],[-355,-328]],[[3229,4383],[-215,100],[-43,78],[-47,18],[18,36]],[[2942,4615],[-33,77],[37,37],[-33,24],[16,49]],[[5254,5197],[-6,-127],[70,-16],[50,-68],[-16,-17],[34,-112],[58,-1],[121,-71],[19,3],[47,-117],[45,-75],[-29,-59],[28,-89]],[[5675,4448],[-179,-6],[1,-9],[-412,-10],[2,-89],[-306,-7],[2,-92],[-159,-3],[-100,-95]],[[4524,4137],[-83,-77],[-88,-24],[-193,-3],[5,-232],[-338,-300]],[[3827,3501],[-45,61],[-71,3],[-46,45],[-165,101],[-21,56],[38,50],[-49,63]],[[3468,3880],[14,51],[64,16],[-4,170],[-313,266]],[[2942,4615],[-195,-2],[-67,24],[-88,-89]],[[2592,4548],[0,20],[-112,57],[-56,81],[-65,42],[-83,26],[-110,57],[-29,49],[-91,79]],[[2081,5150],[49,-22],[74,19]],[[6148,5233],[459,-344],[1028,-766],[725,-538]],[[8360,3585],[-81,-22],[-839,-51],[-1006,-49]],[[6434,3463],[-281,-9],[-80,-16]],[[6073,3438],[-2,81],[23,7],[-28,124],[-31,26],[-36,87],[3,84],[-43,37],[-28,75],[26,56],[-66,60],[4,46],[-51,-5],[-41,54],[8,45],[-53,37],[12,35],[-90,101],[29,16],[-34,44]],[[2592,4548],[-60,-6]],[[2532,4542],[-13,19],[-84,-4],[-55,-57]],[[2380,4500],[-61,86],[-62,44],[-43,-25],[-124,1],[-111,74],[-67,89]],[[3468,3880],[-70,45],[44,-113],[-43,-6],[-113,99],[-57,17],[-98,-54],[-14,68],[-180,157],[-12,31],[-70,-1],[-18,58],[9,58],[-39,46],[-105,34],[13,38],[-138,123],[-45,62]],[[3827,3501],[70,-29],[-14,-35],[43,-61]],[[3926,3376],[-671,-6],[-428,0]],[[2827,3370],[-115,99],[-42,122],[-66,22],[-58,103],[-80,78],[-117,59],[-61,57],[-4,97],[-49,136],[14,47],[-35,14],[38,61],[60,-35],[48,58],[34,163],[-14,49]],[[6073,3438],[-449,-11],[-317,-14],[-723,-21]],[[4584,3392],[-9,372],[3,140],[50,0],[-3,142],[-51,-1],[-3,93],[-47,-1]],[[4584,3392],[-637,-15]],[[3947,3377],[-21,-1]],[[9719,1833],[-876,-71],[4,-46],[-875,-58],[-730,-42],[2,-32],[-296,-15],[-1,15],[-149,-6],[-2,14],[-181,-8],[3,-47],[-51,-21],[3,-49],[-45,-4],[-13,-58]],[[6512,1405],[-116,75]],[[6396,1480],[-20,32],[30,51],[37,0],[70,289],[-38,289],[-17,282]],[[6458,2423],[35,2],[-59,1038]],[[8360,3585],[264,-198],[803,-595],[12,-135],[51,-38],[34,-64],[90,-57],[49,-122],[61,-68],[3,-78],[48,-2],[119,-82],[51,-14],[43,-46],[-20,-55],[-82,-93],[-143,-77],[-24,-28]],[[3947,3377],[4,-185],[105,0],[2,-92],[88,-92],[114,0],[4,-93],[68,2],[4,-93],[139,1],[4,-93],[111,8],[-5,-98],[87,-9],[6,-190]],[[4678,2443],[-63,-2],[-129,74],[-72,0],[-90,33],[-95,54],[-53,0],[-122,53],[-61,-37],[-22,-48],[-142,-38],[41,-54],[-2,-42],[-160,91],[-174,-42],[-15,16]],[[3519,2501],[17,135],[-19,48],[-88,34],[-19,-21],[-99,52],[-41,48],[54,94],[-65,113],[-95,12],[-98,95],[-60,87],[-119,33],[-60,139]],[[6458,2423],[-772,-36],[-434,-15],[15,-31]],[[5267,2341],[-95,-1],[-1,24],[-265,-6],[-34,68],[-105,-3],[-59,20]],[[4708,2443],[-30,0]],[[4131,1508],[9,-42],[67,-16],[9,-43],[-143,-54],[-65,32],[-59,89],[182,34]],[[3825,1518],[54,-33],[-55,-9],[-91,16],[90,49],[2,-23]],[[4278,1551],[150,-20],[123,-40],[66,46],[45,-21],[-33,-40],[-105,-14],[-54,-29],[-103,-4],[-55,22],[-34,100]],[[4708,2443],[16,-526],[-30,-36]],[[4694,1881],[-127,46],[-104,-29],[-77,20],[-91,-12],[-128,55],[-127,11],[-156,-5],[-177,-27],[-43,80],[-133,58],[42,129],[-37,59],[24,111],[-60,46],[19,78]],[[4674,713],[108,-57],[-48,-16],[-98,44],[38,29]],[[5234,1544],[-148,59],[-36,-6],[-90,46],[-62,125],[-115,55],[-89,58]],[[5267,2341],[267,-534],[-34,-45],[3,-77],[-118,-4],[-148,-106],[-3,-31]],[[5636,469],[107,-108],[128,-91],[-57,-40],[-78,51],[-79,121],[-21,67]],[[5600,948],[66,1],[176,-69],[69,-90],[-154,-4],[-34,37],[-3,65],[-74,15],[-46,45]],[[6396,1480],[-191,-7],[2,-46],[-79,-64],[-49,-110]],[[6079,1253],[-109,23],[-53,-17],[-18,-53],[-137,65],[33,34],[-18,78],[-53,92],[-88,75],[-120,-3],[-120,-23],[-21,-23],[-48,34],[-93,9]],[[9592,1124],[-659,-53],[-799,-57]],[[8134,1014],[-437,-26],[-514,-27],[-212,-5],[-2,17],[-132,41],[5,14],[-145,-7]],[[6697,1021],[-2,31],[88,139],[-61,44],[-64,6],[-3,49],[-46,9],[-97,106]],[[9719,1833],[1,-70],[-87,-110],[38,-61],[-25,-20],[49,-161],[-31,-49],[18,-107],[-33,-25],[-57,-106]],[[6697,1021],[2,-35],[-68,-22],[-13,-73]],[[6618,891],[-93,76],[-31,-3],[-72,82],[-99,53],[-53,12],[-191,142]],[[8134,1014],[31,-376],[-23,-2],[32,-374],[1,-115]],[[8175,147],[-1028,-147],[-20,99],[-84,86],[52,-12],[53,-110],[20,30],[-34,68],[-50,43],[-80,-34],[0,60],[42,16],[-74,59],[25,53],[-36,141],[-72,142],[-153,174],[-118,76]],[[9592,1124],[-24,-28],[-72,-17],[31,-41],[-27,-66],[58,-30],[9,-119],[-23,-67],[39,-56],[51,-12],[110,7],[53,-55],[14,-137],[-58,-60],[8,-38],[-87,-38],[-75,5],[-29,-23],[-1395,-202]]],"transform":{"scale":[0.053665021230482876,-0.06000600060006],"translate":[31.701726358200858,600]}}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment