更新映射刻度的模式

时间:2015-09-02 21:46:00

标签: javascript d3.js

我试图用一些geojson和一个经文创建一个地图。

geojson正确地添加到地图中,但我无法使用标准d3更新,输入,退出程序添加格线。当我只是附加它时,正确添加了经纬网。我不完全理解attr" d"的作用,所以可能问题出在哪里?有任何想法吗?谢谢!

update = function(map){

var projection = d3.geo.satellite()
  .distance(projParams["distance"])
  .scale(projParams["scale"])
  .rotate([projParams["rotateLong"], projParams["rotateLat"], projParams["rotateZ"]])
  .center([projParams["centerX"], projParams["centerY"]])
  .tilt(projParams["tilt"])
  .clipAngle(Math.acos(1 / 1.1) * 180 / Math.PI - 1e-6)
  .precision(1);

var path = d3.geo.path()
    .projection(projection);

// create california shape

var mapElement = svg.selectAll(".boundary")
  .data(map.features)
  .attr("d", path);

mapElement.enter().append("path")
  .attr("class", "boundary")
  .attr("d", path)

mapElement.exit().remove();


// create graticule shape

var graticule = d3.geo.graticule()
    .extent([[-130.4183, 35], [-47 + 1e-6, 57 + 1e-6]])
    .step([.1, .1]);

var graticuleElement = svg.selectAll(".graticule")
  .data(graticule)
  .attr("d", path);

graticuleElement.enter().append("path")
  .attr("class", "graticule")
  .attr("d", path)

graticuleElement.exit().remove();


// working graticule code without update ability 

// grid = svg.append("path")
// .datum(graticule)
// .attr("class", "graticule")
// .attr("d", path);}

0 个答案:

没有答案