Почему на карте отображаются странные черные пятна на карте, когда я добавляю границы провинций? - PullRequest
0 голосов
/ 10 октября 2019

Я использую эти данные (https://github.com/deldersveld/topojson/blob/master/countries/pakistan/pakistan-provinces.json) для отображения карты Пакистана с обозначенными границами провинций. Карта страны отображается хорошо, но как только я добавляю границы провинций, появляются странные черные полигоны в дополнениедо провинциальных границ.

Я просмотрел все данные, отправляемые из topoJSON. Есть только один объект, PAK_adm1, из которого я могу извлечь, поэтому я не могу его изменить. Поэтому я попытался использовать другойиз d3.topojson методов на всякий случай (https://github.com/topojson/topojson) безрезультатно.

Технически, я могу удалить .attr("fill", "green"), и моя проблема будет решена, но мне нужно, чтобы карта страны была чем-то другимчем черный.

  .geoMercator()
  .scale(1500)
  .translate([width / 2, height / 2])
  .precision(0.1)
  .center([65, 24]);

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

var graticule = d3.geoGraticule();

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

d3.json(
  "https://raw.githubusercontent.com/deldersveld/topojson/master/countries/pakistan/pakistan-provinces.json"
).then(function(world) {
  console.log(world);
  console.log(topojson.feature(world, world.objects.PAK_adm1));
  console.log(topojson.mesh(world, world.objects.PAK_adm1));
  // console.log(graticule);

  svg
    .append("path")
    .attr("fill", "green")
    .datum(topojson.feature(world, world.objects.PAK_adm1))
    .attr("class", "land")
    .attr("d", path);

  svg
    .append("path")
    .datum(
      topojson.mesh(world, world.objects.PAK_adm1, function(a, b) {
        return a !== b;
      })
    )
    .attr("class", "boundary")
    .attr("d", path)
    .attr("stroke", "white");

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

d3.select(self.frameElement).style("height", height + "px");

Ожидается: карта Пакистана зеленым цветом с провинциями, обведенными белыми линиями.

Факт: карта Пакистана зеленым цветом с провинциями, обведенными белыми линиями, но части страны с указаниемв виде черных фигур. Эти фигуры не связаны с провинциями или границами страны; кажутся случайными. Карта, показывающая нежелательные черные фигуры

...