angular -данные карты не заполняют правильный цвет, если у «id» места есть место - PullRequest
1 голос
/ 07 апреля 2020

Для angular -данных карт, предположим, что это мой mapObject, и у меня есть имена местоположений с идентификаторами ("AZ", "CO", "AZ CO", "CO AB") (точно вместе с пробелом)

$scope.mapObject = {
  scope: 'usa',
  options: {
    width: 1110,
    legendHeight: 60 // optionally set the padding for the legend
  },
  geographyConfig: {
    highlighBorderColor: '#EAA9A8',
    highlighBorderWidth: 2
  },
  fills: {
    'HIGH': '#CC4731',
    'MEDIUM': '#306596',
    'LOW': '#667FAF',
    'defaultFill': '#DDDDDD'
  },
  data: {
    "AZ": {
      "fillKey": "MEDIUM",
    },
    "CO": {
     "fillKey": "HIGH",
    },
    "AZ CO": {
      "fillKey": "LOW",
    },
    "CO AB": {
      "fillKey": "MEDIUM",
    }
  },
}

При отображении карты заполненные цвета: средний для AZ, высокий для CO, высокий для "AZ CO", высокий для "CO AB".

если "AZ" и "CO «значения находятся в другом порядке (сначала« СО », затем« АЗ ») внутри данных, затем закрашенные цвета: Высокий для СО, Средний для АЗ, Средний для« АЗ СО », Высокий для« СО АБ »

Что мне делать, чтобы получить соответствующие цвета без переопределения этих местоположений?

TIA.

1 Ответ

0 голосов
/ 07 апреля 2020

Вот предложение:

var locations = $scope.mapObject.data;
var colors = $scope.mapObject.fills;

var locationsColors = {};
var dataFormatted = [];
for (location in locations) {
  locationsColors[location] = colors[locations[location].fillKey];
}
console.log("Object of Locations Colors mapping : ", locationsColors);
console.log("Color of 'AZ CO' for example is : ", locationsColors["AZ CO"]);
...