Проекция Меркатора d3.js на карту Нью-Йорка

Я делаю карту районов Нью-Йорка и не могу сделать правильную проекцию: единственное, что у меня получается, — это крошечная карта.

Я попытался воссоздать этот пример, который только заставил консоль сходить с ума от ошибок, я подозреваю, потому что там что-то не так с уравнением.

Когда я пытался заставить albers работать, я попробовал ответить на этот вопрос и до сих пор я не мог заставить карту работать.

  With 960/500 height and width, I used: var projection = d3.geo.albers().center([40.71, 73.98]).parallels([29.5, 45.5]).scale(10000).translate([(width) / 2, (height)/2]);

Прямо сейчас я использую поперечную проекцию Меркатора с приведенным ниже кодом и топографию, которую я создал с помощью одного из эти файлы.

  var width = 960,
   height = 500;

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

  d3.json("nyc-borough.json", function(error, nyb) {

  var boroughs = topojson.feature(nyb, nyb.objects["nyc-borough-boundaries-polygon"]).features;

  var projection = d3.geo.transverseMercator()
.scale(1600)
.rotate([73 + 58 / 60, -48 - 47 / 60]);

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

var g = svg.append("g");

g.append("g")
.attr("id", "boroughs")
.selectAll(".state")
.data(boroughs)
.enter().append("path")
.attr("class", function(d){ return d.properties.name; })
.attr("d", path);

});

Пожалуйста, помогите :(

Заранее спасибо!


person user2799712    schedule 20.09.2013    source источник
comment
Этот вопрос должен помочь.   -  person Lars Kotthoff    schedule 20.09.2013


Ответы (1)


Я создал блок с районами Нью-Йорка здесь. Вы были на правильном пути с WSG84/Mercator, так как это были исходные данные, как показала быстрая проверка в QGIS.

QGIS также хорошо проверил центр данных, который снова оказался [-73,94 , 40,70]. Обратите внимание, что это противоположно вашим координатам, которые были широтой и долготой, но для d3 нужны долгота и широта, как обсуждалось здесь в API. Еще одна вещь, на которую стоит обратить внимание, это негативы. Север положителен, поэтому широта в северном полушарии положительна, а в южном полушарии отрицательна. Для восточного и западного полушарий восток — это положительно. Конечно, это имеет значение только для глобальных прогнозов США. У Альберса не было бы негатива для США. О, и никакое обсуждение проекций не будет полным без знакомства с работой Джейсона Дэвиса.

Если вы хотите использовать проекцию, отличную от проекции, в которой находятся ваши данные, я обычно думаю, что лучше предварительно обработать ваши данные в этой проекции, и QGIS — отличный инструмент для этого, но есть много других, таких как gdal.

person user1614080    schedule 21.09.2013
comment
Вау, спасибо! В итоге я использовал пример Нью-Джерси, используя соответствующий JSON, и просто переместил карту в координаты Нью-Йорка. Затем я распечатал масштаб и преобразование, которые были рассчитаны динамически, но это, конечно, выдало неточные числа. В любом случае это сработало, но ваш ответ гораздо полезнее. +1 также потому, что я не думаю, что там так много информации об этом! - person user2799712; 23.09.2013
comment
Я не знал как, извините! - person user2799712; 31.01.2014