Как программно выбрать точку на карте? - PullRequest
2 голосов
/ 19 июня 2019

У меня есть выпадающий список со списком округов для выбора на карте.Я пытаюсь выяснить, как можно выделить графство на карте, когда оно выбрано.Я не могу найти в документации API, где это делается.

Я пытался изменить цвет заливки точки, но когда вы выбираете новый цвет, код, чтобы изменить его на прежний, кажется, не хочетвыполнить.

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


$("#county-select").change(function () {
    $('.highcharts-point-select').css('fill', 'rgb(153, 145, 164)');

    $('.county-checkbox').prop('checked', false);
    $('.metric-td').remove();

    let id = $('#county-select').val();
    let fips = $(this).find(':selected').attr('data-fips');
    let point = mapChart.get(fips);
});

1 Ответ

2 голосов
/ 20 июня 2019

Вы можете использовать функциональность allowPointSelect для запуска выбора на карте через выпадающий список.Здесь я добавляю код страны в качестве идентификатора точки, чтобы мы могли использовать chart.get для их получения.

Минимальный пример с двумя кнопками для выбора исключительно Норвегии или Швеции ()JSFiddle ):

$.getJSON('https://cdn.jsdelivr.net/gh/highcharts/highcharts@v7.0.0/samples/data/world-population-density.json', function (data) {

  for(var i = 0; i < data.length; i++) {
    // Adding ID to data, so we can use "get" to find the points
    data[i].id = data[i].code3;
  }

  // Initiate the chart
  var chart = Highcharts.mapChart('container', {
    series: [{
      data: data,
      mapData: Highcharts.maps['custom/world'],
      joinBy: ['iso-a2', 'code'],
      allowPointSelect: true,
    }]
  });

  $('#selectnor').click(function () {
    chart.get('NOR').select();
  });

  $('#selectswe').click(function () {
    chart.get('SWE').select();
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...