Skip to contents

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()"