Skip to content

Instantly share code, notes, and snippets.

View jkutianski's full-sized avatar
🏠
Working from home

Juan Pablo Kutianski jkutianski

🏠
Working from home
View GitHub Profile
@jkutianski
jkutianski / extractFeatures.js
Created August 7, 2013 19:37
Dirty hack to extract features from geoJSON files. Useful to split geoJSON based on equal propertires.
// Sample use: node extractFeatures.js argentina.json "properties.is_in:state.toLowerCase() === 'buenos Aires'" > buenos_aires.json
var path = require('path'),
origin = require(path.resolve(__dirname, process.argv[2])),
selector = process.argv[3],
destination = {
"type": "FeatureCollection",
"features": []
},
i=0;
@jkutianski
jkutianski / mergeFeatures.js
Created August 8, 2013 04:45
Dirty hack to merge geoJSON feature.
// Sample use: node mergeFeatures.js argentina.json buenos_aires.json > argentina_merged.json
var origin1 = require(path.resolve(__dirname, process.argv[2])),
origin2 = require(path.resolve(__dirname, process.argv[3])),
destination = {
"type": "FeatureCollection",
"features": []
};
destination.features = origin1.features.concat(origin2.features);
@jkutianski
jkutianski / README.md
Last active August 15, 2019 21:38
Proyección Gauss Kruger Argentina en D3.js

Para la Argentina la proyección oficial es la Gauss-Kruger, y esta difiere bastante de la proyección Mercator que es normalmente utilizada en mapas digitales. Si queremos desplegar el territorio argentino de manera de lograr una representación armoniosa que conserve las formas y áreas, lo recomendable es usa Gauss-Kruger.

Transverse Mercator vs Mercator

En D3.js no esta soportada esta proyeccion pero se puede optar por la proyección Mercator transversa d3.geo.transverseMercator() que es la base para la definición de la referencia cartográfica Gauss-Kruger. Esta proyección está definida dentro del plugin d3.geo.projection.js por lo que deberá ser cargado junto con d3.js.

Para poder calcular los parámetros necesarios para aplicar esta proyección es necesario calcular el centro geográfico de la Argentina continental, que está comprendida entre lo

@jkutianski
jkutianski / README.md
Last active December 23, 2015 02:48
Comparación entre proyección mercator y mercator transversa para la Argentina

A la proyección mercator es necesario ajustarle 2°por la deformación existente el la parte sur de la Argentina.

@jkutianski
jkutianski / README.md
Last active December 23, 2015 06:09
Fajas y meridianos de la proyección Gauss-Kruger para la Argentina

Con el fin de reducir las deformaciones en el sentido Este-Oeste a valores insensibles a los usos cartográficos de precisión, Krüger redujo el ancho de las fajas a 3° de longitud (1° 30’ a la izquierda y 1° 30’ a la derecha del meridiano central de cada faja)y para esos meridianos centrales eligió aquellos cuyos números de grados son múltiples de 3° de longitud. En el caso de la República Argentina, los meridianos centrales tienen los siguientes valores: -72°, -69°, -66°, -63°, -60°,-57° y -54°.

@jkutianski
jkutianski / README.md
Last active December 23, 2015 10:08 — forked from mbostock/.block
Scatterplot w/label selectors
@jkutianski
jkutianski / README.md
Last active December 23, 2015 10:09 — forked from mbostock/.block
Scatterplot w/toggle label selectors
@jkutianski
jkutianski / README.md
Last active December 27, 2015 12:49 — forked from JnBrymn/index.html
My attempt to add templating to d3.js
@jkutianski
jkutianski / README.md
Last active December 28, 2015 08:59
A new attempt to add templating to d3.js

D3.js templating test based on my previous solution of John Berryman's attempt.

ICahnHaz.js uses <script></script> and I preffer the idea of Eric Bidelman. The <template> element is currently supported in Chrome, Firefox and Opera (15+)for now.

Because the use of innerHTML run-time string parsing of user-supplied data can easily lead to XSS vulnerabilities and isn't supported by SVGElement, I use now XMLSerializer() and DOMParser() to inject the templates into the DOM. The callTemplate function uses querySelector and isn't limitted to Mustache.

Fork me @ GITHUB

@jkutianski
jkutianski / README.md
Last active December 28, 2015 20:19
A new attempt to add templating to d3.js

D3.js templating test based on my previous solution of John Berryman's attempt.

The HTMLTemplateElement is currently supported in Chrome, Firefox and Opera (15+) for now. See Eric Bidelman HTMLTemplateElement tuturial

I change the idea of use HTMLTemplateElement.content because is only supported by 3 browsers . I'm using HTMLElement.innerHTML to read the template content and DOMParser() to inject the result into the DOM. To hide the content of <template> (HTMLUnknownElement) on other browsers (Safari, IE, etc) I add a CSS rule with display:none. On browsers that support HTMLTemplateElement the <script> isn't fired when the browser parse the document, but is different on HTMLUnknownElements. If someone know how to break the script execution on HTMLUnknownElements please send me a tweet @baldpower

[Fork me