Как правильно отобразить Непал в d3.js, используя проекции Альберса?

Я пытаюсь создать интерактивную карту Непала в d3.js с файлом topojson. Мне удалось сделать это с помощью проекции d3.geo.albers(). Код, который я использовал, приведен ниже.

<!DOCTYPE html>
<meta charset="utf-8">
<style>

.feature {
  fill: #ccc;
}

</style>
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script>

var width = 960,
    height = 500;

var projection = d3.geo.albers()
    .center([86, 28])
    .rotate([4.4, 0])
    .parallels([27, 32]);

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

var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

d3.json("data/nepal3.json", function(error, npl) {
    var districts = topojson.feature(npl, npl.objects.nepal_districts);

    projection
      .scale(1)
      .translate([0, 0]);

    var b = path.bounds(districts),
      s = .95 / Math.max((b[1][0] - b[0][0]) / width, (b[1][1] - b[0][2]) / height),
      t = [(width - s * (b[1][0] + b[0][0])) / 2, (height - s * (b[1][3] + b[0][4])) / 2];

    projection
      .scale(s)
      .translate(t);

    svg.append("path")
      .datum(districts)
      .attr("class", "feature")
      .attr("d", path);   
});

The map I get is not quite what I want. It is projected the wrong way than how the standard map of nepal looks like.

Это выглядит так: это вместо обычной проекции.

Что я здесь делаю неправильно? Есть ли другие прогнозы, более подходящие для координат Непала?


person sfactor    schedule 16.11.2013    source источник
comment
Похоже, вы повернули проекцию не в ту сторону, т.е. смотрите на Непал сквозь землю с другой стороны. Вы пробовали поворачивать на 180 градусов?   -  person Lars Kotthoff    schedule 16.11.2013
comment
@LarsKotthoff да, это действительно сработало :). Есть ли какая-нибудь литература по подобным вещам? Кроме того, если вы укажете это в ответе, я могу принять это.   -  person sfactor    schedule 16.11.2013
comment
Ну, есть очень много литературы по географическим прогнозам и тому подобному. Добавлю ответ, спасибо.   -  person Lars Kotthoff    schedule 16.11.2013
comment
@sfactor, можете ли вы поделиться полным файлом d3? Я тоже заинтересован в том, чтобы сделать один.   -  person Chandan Gupta    schedule 21.08.2014
comment
@ChandanGupta После этого я мало что сделал, но вы можете загрузить мой код из следующего места в качестве отправной точки. github.com/batuwa/nepal_d3_map   -  person sfactor    schedule 24.08.2014


Ответы (1)


Похоже, вы повернули проекцию не в ту сторону, т.е. смотрите на Непал сквозь землю с другой стороны. Он должен работать нормально, если вы повернете его на 180 градусов, т.е.

.rotate([184.4,0])
person Lars Kotthoff    schedule 16.11.2013