<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                > [Wiki](Home) ? [[API--中文手冊]] ? [[地理]] ? **地理路徑** * 如發現翻譯不當或有其他問題可以通過以下方式聯系譯者: * 郵箱:zhang_tianxu@sina.com * QQ群:[D3數據可視化](http://jq.qq.com/?_wv=1027&k=ZGcqYF)205076374,[大數據可視化](http://jq.qq.com/?_wv=1027&k=S8wGMe)436442115 對于地圖的可視化,D3支持少數的組件顯示和操作地理數據。這些組件使用GeoJSON格式——在JavaScript中標準的地理特征表示方法。(可以參見TopoJSON格式,它是GeoJSON的擴展格式,表示的更加緊密。)。要把圖形文件轉換為GeoJSON,使用ogr2ogr的GDAL包的一部分。 這有一些你可能感興趣的其他工具: TopoJSON –簡化圖形文件,拓撲結構和GeoJSON壓縮。 Shapely –操作平面幾何圖形對象。 ColorBrewer –地圖顏色的比例尺。 PostGIS –一個地理空間數據庫。 顯示地理數據最主要的機制就是用到d3.geo.path。這個類是類似于d3.svg.line和其他SVG形狀生成程序:給定一個幾何形狀或功能的對象,它生成適合于SVG路徑元素的“d”屬性的路徑數據串。該d3.geo.path類可以直接渲染到畫布上,在動畫投影時可以提供更好的性能。 # d3.geo.path() 創建一個新的地理路徑生成器,使用默認設置:albersUsa投影和4.5個像素點的半徑。 # path(feature[, index]) 為給定的功能feature返回路徑數據串,它可以是任何GeoJSON的特征或幾何對象: Point –單個位置。 MultiPoint –一組位置。 LineString –一組位置形成一條連續的線。 MultiLineString - 位置數組的數組,形成多條線。 Polygon –位置數組的數組,形成一個多邊形(可能是由小洞組成的)。 MultiPolygon –位置的多維數組,形成了多個多邊形。 GeometryCollection –幾何對象的數組。 Feature - 包含了幾何對象其中的一個特征。 FeatureCollection –特征對象的數組。 “Sphere”類型也支持,對于繪制地球的輪廓是非常有用的。sphere球體沒有坐標。一個可選的index 索引可以被指定,傳遞給pointRadius存取器,Index在路徑生成器被selection.attr調用的時候自動地傳遞。 重要的是:一多邊形內部是所有的點,這些點是以順時針方向圍繞著多邊形。如果你的GeoJSON輸入有錯誤順序的多邊形,那么你必須扭轉它們,通過ST_ForceRHR,你也可以將你的GeoJSON轉換為TopoJSON,這樣的話,它就能自動生成。 顯示多個功能,你可以將它們放置在一個單一的特征集和單一路徑元素上: svg.append("path") .datum({type:"FeatureCollection",features:features}) .attr("d",d3.geo.path()); 另外,您也可以創建多個不同的路徑元素: svg.selectAll("path") .data(features) .enter().append("path") .attr("d",d3.geo.path()); 對于集合來說利用不同的路徑元素通常地比單個路徑元素要慢。但是,如果你想與特征分別進行交互的話,不同的路徑元素是最好的(例如,使用CSS:懸停或單擊事件)。 # path.projection([projection]) 如果 指定了投影projection,設置為路徑生成器使用的投影為指定的投影函數。如果projection 投影沒有指定,那么返回當前的投影,默認為albersUsa。projection 投影通常是D3一個內置地理投影;然而,任何函數都可以使用。投影函數采用了兩元素的數字數組來代表坐標的位置,[longitude, latitude],并返回類似的表示該投影像素位置[x, y]的兩元素數字數組。例如,一個基本的spherical Mercator投影: functionmercator(coordinates){ return[ coordinates[0]/360, (-180/Math.PI*Math.log(Math.tan(Math.PI/4+coordinates[1]*Math.PI/360)))/360 ]; } 從內在的說,這個點投影函數是包裹著一個備用的流變換,它可以執行自適應重采樣。然而,備用的流不執行任何裁剪或切割。 為了更好地控制流的變換,projection 投影可以被指定為一個對象來實現流方法(參見實例:http://bl.ocks.org/mbostock/5663666)。該流的方法需要一個輸出流作為輸入,并返回一個投影在輸入的幾何體上的包裝流,換句話說,它實現了projection.stream。 如果投影為null,則路徑使用恒等變換,其中輸入的幾何體不被投影并且不是直接以原始坐標來渲染。這對已經投影的幾何體快速渲染有用,或對正方形投影的快速渲染有用。 # path.context([context]) 如果指定了context ,設置渲染上下文并返回生成的路徑。如果context 為空,當在一個給定的功能調用時,路徑生成器將返回一個SVG路徑字符串。如果context 非空,路徑生成器將替換調用函數為指定的上下文來渲染幾何圖形。context 必須實現以下方法: beginPath() moveTo(x, y) lineTo(x, y) arc(x, y, radius, startAngle, endAngle) closePath() 可以注意到,這是畫布元素的二維渲染上下文的子集,這樣畫布context 可以被傳遞到路徑生成器,在這種情況下,幾何形狀將直接渲染到畫布上。如果context 沒有指定,則返回當前渲染的上下文,默認為null。 # path.area(feature) 對指定的功能feature計算投影面積(使用方形像素)。Point,MultiPoint,LineString和LineString特征有為零的區域。對多邊形Polygon和多邊形集合MultiPolygon的特征,該方法首先計算外部環形的面積,再減去內部有任何孔的區域。這種方法通過投影流觀察進行任何的剪裁和重新采樣。 # path.centroid(feature) 對指定的功能feature計算投影重心(以像素為單位),這是非常方便的。比如說,標記州或國家的邊界,或顯示符號映射。非連續統計圖,示例了圍繞其質心的每個狀態。這種方法觀察通過投影流運行的任何剪裁和重新采樣。 非連續統計圖:ttp://mbostock.github.com/d3/ex/cartogram.html # path.bounds(feature) 對特定的功能計算投影的邊框(像素),這是非常方便的。比如說,放大到一個特定的形態。這種方法觀察通過投影流運行的任何剪裁和重新采樣。 # path.pointRadius([radius]) 如果指定半徑,那么設置的半徑為特定的數,用來顯示點Point和多點MultiPoint的功能。如果未指定半徑,則返回當前的半徑。而半徑通常指定為一個數字常數,它也可以被指定為對每個特征進行計算的函數,傳遞來自路徑函數的feature 和index 參數。例如,如果你的GeoJSON數據有額外的屬性,你就可以訪問內置的半徑函數中的屬性來改變點的大小;或者,你可以用d3.svg.symbol 和一個投影來更好地控制顯示。 Shape Generators 注:在D3中生成一個巨大的弧線,只需要簡單地把一個LineString類型的幾何對象傳遞給d3.geo.path。D3的投影采用great-arc插值器生成中間點(使用了自適應重采樣)。因此沒有必要使用形狀生成器來創造大的弧線。 # d3.geo.graticule 構造一個特征生成器用來創建地理刻度。 # graticule() 返回一個MultiLineString幾何對象表示這個刻度的所有經線和緯線。 # graticule.lines() 返回LineString幾何對象,用于這個刻度的每一個經線和緯線。 # graticule.outline() 返回一個多邊形Polygon幾何對象,代表了這個地理坐標的輪廓,IE瀏覽器沿著它的經線和緯線界定其范圍。 # graticule.extent(extent) 如果extent 指定了,設置此刻度的主要和次要范圍。如果沒有指定范圍,返回當前次要的范圍,默認為??-180°, -80° - ε?, ?180°, 80° + ε??。 # graticule.majorExtent(extent) 如果extent 指定了,設置此刻度的主要范圍。如果未指定范圍,返回當前主要的范圍,默認為??-180°, -90° + ε?, ?180°, 90° - ε??。 # graticule.minorExtent(extent) 如果extent 指定了,設置此刻度的較小范圍。如果沒有指定范圍,返回當前較小的范圍,默認為??-180°, -80° - ε?, ?180°, 80° + ε??。 # graticule.step(step) 如果step 指定了,設置這個刻度的主要和次要的步長。如果沒有指定step ,則返回當前次要的step ,默認為?10°, 10°?。 # graticule.majorStep(step) 如果step 指定了,設置這個刻度的主要step。如果沒有指定step,返回當前的主要step,它默認為?90°, 360°?。 # graticule.minorStep(step) 如果step 指定了,設置這個刻度次要的step 。如果沒有指定step ,返回當前的次要step ,默認為?10°, 10°?。 # graticule.precision(precision) 如果指定了precision ,設置這個刻度的精度,以度為單位。如果沒有指定精度,則返回當前精度,默認值為2.5°。 # d3.geo.circle 為在一個給定的地理位置創建帶有給定半徑(以度為單位)的圓中心構建一個特征生成器。 # circle(arguments…) 返回一個接近圓形的GeoJSON多邊形。原點訪問器指定如何為給定的參數確定原點,默認的訪問使用的是常量?0°,0°?。 # circle.origin([origin]) 如果指定了origin ,設置圓的原點。一個兩元坐標數組應該被指定,或訪問函數。如果origin 沒有指定,則返回當前的原點,默認值為?0°,0°?。 # circle.angle([angle]) 如果指定了angle ,用度數來設置圓的角半徑。如果angle 沒有指定,則返回當前的半徑,默認為90°。 # circle.precision([precision]) 如果precision 指定,以度為單位設置圓形片段的精度的插值器。當一個特征被圓形裁剪時,這些內插節段就被插入了。如果沒有指定precisionis,則返回當前精度,默認值為6°。 Spherical Math # d3.geo.area(feature) 返回指定功能的球形區域(以球面度為單位)。可以參考path.area,其在Cartesian plane平面上計算投影區域。 # d3.geo.centroid(feature) 返回指定功能的球形重心。可參考path.centroid,其在Cartesian plane平面上計算投影重心。 # d3.geo.bounds(feature) 返回指定功能的球形邊框。邊界框是由一個二維數組來表示:[[left, bottom], [right, top]],其中left 是最小經度,bottom 是最小緯度,right 是最大經度和top 是最大緯度。可參考path.bounds,其在Cartesian plane平面上計算投影的邊界框。 # d3.geo.distance(a, b) 返回在兩個點a和b之間弧度的最大距離,每個點都被指定為一個數組[longitude, latitude],和表示十進制度的坐標。 # d3.geo.length(feature) 返回弧度指定功能的大弧great-arc的長度。對于多邊形,返回外環周長加上任何內置的環。 # d3.geo.interpolate(a, b) 返回給定的兩個位置a和b的插值器。每個位置必須被表示為一個[longitude, latitude]的二元數組。返回的插值器是一個函數,它可以接受單個參數t作為輸入,其中t的范圍是0?10,0返回a位置的,而1返回b的位置。中間值的插入是從a到b的大弧形。 # d3.geo.rotation(rotate) 設置一個旋轉為 [λ, φ, γ]形式的數組。數組的元素是以度為單位的角度,并指定按照下面的順序來旋轉:縱向,橫向和原點。如果數組的最后一個元素,γ,省略了,那么這個默認值就為0。返回一個函數,該函數就如所述的那樣轉動到一個指定的位置。 # rotation(location) 在上述描繪的順序下,這個旋轉是在一個指定的位置,根據特定的角度來旋轉的。位置被指定為一個數組[longitude, latitude],用度數表示的坐標。返回一個新的數組來表示旋轉的位置。 # rotation.invert(location) 該旋轉是根據指定的角度和位置來旋轉的,但與上述描述的相反順序來旋轉。一個位置指定為一個數組[longitude, latitude],用度數來表示坐標。返回一個新的數組來表示旋轉的位置。 * 翟琰琦譯 20141124 * 何凱琳 譯2014年11月27日 20:45:29 * Gulu 校對 2014-12-7 21:45:37
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看