跳至內容

球形形狀

這些形狀產生器會傳回球形 GeoJSON,供 geoPath 使用。

提示

若要產生 大圓弧(大圓的一部分),請將 GeoJSON LineString 幾何物件傳遞給 geoPath。D3 的投影會使用測地線插值法來處理中間點。

geoGraticule()

原始碼 · 建構幾何產生器,用於建立經緯網:均勻的 經線緯線 格線,用於顯示投影失真。預設的經緯網在緯度 ±80° 之間每 10° 有經線和緯線;對於極地,每 90° 有經線。

graticule()

原始碼 · 傳回 GeoJSON MultiLineString 幾何物件,表示此經緯網的所有經線和緯線。

graticule.lines()

原始碼 · 傳回 GeoJSON LineString 幾何物件陣列,每個物件代表此經緯網的一個經線或緯線。

graticule.outline()

原始碼 · 傳回一個 GeoJSON Polygon 幾何物件,表示此格線的輪廓,也就是定義其範圍的經線和緯線上。

graticule.extent(extent)

原始碼 · 如果指定 extent,設定此格線的主要和次要範圍。如果未指定 extent,傳回目前的次要範圍,預設為 ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩。

graticule.extentMajor(extent)

原始碼 · 如果指定 extent,設定此格線的主要範圍。如果未指定 extent,傳回目前的次要範圍,預設為 ⟨⟨-180°, -90° + ε⟩, ⟨180°, 90° - ε⟩⟩。

graticule.extentMinor(extent)

原始碼 · 如果指定 extent,設定此格線的次要範圍。如果未指定 extent,傳回目前的次要範圍,預設為 ⟨⟨-180°, -80° - ε⟩, ⟨180°, 80° + ε⟩⟩。

graticule.step(step)

原始碼 · 如果指定 step,設定此格線的主要和次要間隔。如果未指定 step,傳回目前的次要間隔,預設為 ⟨10°, 10°⟩。

graticule.stepMajor(step)

原始碼 · 如果指定 step,設定此格線的主要間隔。如果未指定 step,傳回目前的次要間隔,預設為 ⟨90°, 360°⟩。

graticule.stepMinor(step)

原始碼 · 如果指定 step,設定此格線的次要間隔。如果未指定 step,傳回目前的次要間隔,預設為 ⟨10°, 10°⟩。

graticule.precision(angle)

原始碼 · 如果指定 precision,設定此格線的精度(以度為單位)。如果未指定 precision,傳回目前的精度,預設為 2.5°。

geoGraticule10()

原始碼 · 一個方便的方法,可直接產生預設的 10° 全球格線,作為一個 GeoJSON MultiLineString 幾何物件。等同於

js
function geoGraticule10() {
  return d3.geoGraticule()();
}

geoCircle()

來源 · 傳回一個新的圓形產生器。

circle(...arguments)

來源 · 傳回一個新的 GeoJSON 幾何物件,類型為「多邊形」,用來近似球體表面上的圓形,具有目前的 中心半徑精度。任何 arguments 都會傳遞給存取器。

circle.center(center)

來源 · 如果指定 center,則將圓形中心設定為指定的點 [經度, 緯度](單位為度),並傳回這個圓形產生器。中心也可以指定為函式;每當 產生 圓形時,就會呼叫這個函式,並傳遞傳遞給圓形產生器的任何引數。如果未指定 center,則傳回目前的中心存取器,預設為

js
function center() {
  return [0, 0];
}

circle.radius(radius)

來源 · 如果指定 radius,則將圓形半徑設定為指定的角度(單位為度),並傳回這個圓形產生器。半徑也可以指定為函式;每當 產生 圓形時,就會呼叫這個函式,並傳遞傳遞給圓形產生器的任何引數。如果未指定 radius,則傳回目前的半徑存取器,預設為

js
function radius() {
  return 90;
}

circle.precision(angle)

原始碼 · 如果指定了 precision,將圓形精度設定為指定角度(以度為單位),並傳回這個圓形產生器。精度也可以指定為函式;每當產生一個圓形時,就會呼叫這個函式,傳遞給圓形產生器的任何引數。如果未指定 precision,傳回目前的精度存取器,預設為

js
function precision() {
  return 2;
}

小圓形不會遵循大圓弧,因此產生的多邊形只是一個近似值。指定較小的精度角度可以提高近似多邊形的準確度,但也會增加產生和渲染它的成本。