topojson projections and extensions
Usage
projections(
proj,
rotate = NULL,
center = NULL,
translate = NULL,
scale = NULL,
clipAngle = NULL,
precision = NULL,
parallels = NULL,
clipExtent = NULL,
invert = NULL
)
Arguments
- proj
Map projection name. One of albers, albersUsa, azimuthalEqualArea, azimuthalEquidistant, conicEqualArea, conicConformal, conicEquidistant, equirectangular, gnomonic, mercator, orthographic, stereographic, or transverseMercator.
- rotate
If rotation is specified, sets the projection's three-axis rotation to the specified angles yaw, pitch and roll (or equivalently longitude, latitude and roll) in degrees and returns the projection. If rotation is not specified, returns the current rotation which defaults
[0, 0, 0]
. If the specified rotation has only two values, rather than three, the roll is assumed to be 0.- center
If center is specified, sets the projection's center to the specified location, a two-element array of longitude and latitude in degrees and returns the projection. If center is not specified, returns the current center which defaults to (0,0)
- translate
If point is specified, sets the projection's translation offset to the specified two-element array
[x, y]
and returns the projection. If point is not specified, returns the current translation offset which defaults to[480, 250]
. The translation offset determines the pixel coordinates of the projection's center. The default translation offset places (0,0) at the center of a 960x500 area.- scale
If scale is specified, sets the projection's scale factor to the specified value and returns the projection. If scale is not specified, returns the current scale factor which defaults to 150. The scale factor corresponds linearly to the distance between projected points. However, scale factors are not consistent across projections.
- clipAngle
If angle is specified, sets the projection's clipping circle radius to the specified angle in degrees and returns the projection. If angle is null, switches to antimeridian cutting rather than small-circle clipping. If angle is not specified, returns the current clip angle which defaults to null. Small-circle clipping is independent of viewport clipping via clipExtent.
- precision
If precision is specified, sets the threshold for the projection's adaptive resampling to the specified value in pixels and returns the projection. This value corresponds to the Douglas-Peucker distance. If precision is not specified, returns the projection's current resampling precision which defaults to Math.SQRT(1/2).
- parallels
Depends on the projection used! See https://github.com/mbostock/d3/wiki/Geo-Projections#standard-projections for help
- clipExtent
If extent is specified, sets the projection's viewport clip extent to the specified bounds in pixels and returns the projection. The extent bounds are specified as an array
[[x0, y0], [x1, y1]]
, where x0 is the left-side of the viewport, y0 is the top, x1 is the right and y1 is the bottom. If extent is null, no viewport clipping is performed. If extent is not specified, returns the current viewport clip extent which defaults to null. Viewport clipping is independent of small-circle clipping via clipAngle.- invert
Projects backward from Cartesian coordinates (in pixels) to spherical coordinates (in degrees). Returns an array
[longitude, latitude]
given the input array[x, y]
.
Examples
projections(proj = "albers")
#> [1] "d3.geo.albers()"
projections(proj = "albers", rotate = "[98 + 00 / 60, -35 - 00 / 60]", scale = 5700)
#> [1] "d3.geo.albers().rotate([98 + 00 / 60, -35 - 00 / 60]).scale(5700)"
projections(proj = "albers", scale = 5700)
#> [1] "d3.geo.albers().scale(5700)"
projections(proj = "albers", translate = "[55 * width / 100, 52 * height / 100]")
#> [1] "d3.geo.albers().translate([55 * width / 100, 52 * height / 100])"
projections(proj = "albers", clipAngle = 90)
#> [1] "d3.geo.albers().clipAngle(90)"
projections(proj = "albers", precision = 0.1)
#> [1] "d3.geo.albers().precision(0.1)"
projections(proj = "albers", parallels = "[30, 62]")
#> [1] "d3.geo.albers().parallels([30, 62])"
projections(proj = "albers", clipExtent = "[[105 - 87, 40], [105 + 87 + 1e-6, 82 + 1e-6]]")
#> [1] "d3.geo.albers().clipExtent([[105 - 87, 40], [105 + 87 + 1e-6, 82 + 1e-6]])"
projections(proj = "albers", invert = 60)
#> [1] "d3.geo.albers().invert(60)"
projections("orthographic")
#> [1] "d3.geo.orthographic()"