Highmaps - Как убрать Канарские острова из Испании

Вы также можете сделать это в два этапа:

remove = [k for k in mydict if k == val]
for k in remove: del mydict[k]

Мой любимый подход обычно состоит в том, чтобы просто создать новый dict:

# Python 2.7 and 3.x
mydict = { k:v for k,v in mydict.items() if k!=val }
# before Python 2.7
mydict = dict((k,v) for k,v in mydict.iteritems() if k!=val)
0
задан S Jordan 16 January 2019 в 09:05
поделиться

2 ответа

Это можно решить, выдвинув новые координаты для Испании. http://bastionstudio.co.za/test/spain-no-canary-islands.html

console.log(Highcharts.maps['custom/world'].features);

Highcharts.maps['custom/world'].features.push({
   "type":"Feature",
   "id":"ES",
   "properties": {
          "hc-group":"admin0",
          "hc-middle-x":0.76,
          "hc-middle-y":0.27,
          "hc-key":"es",
          "hc-a2":"ES","name":"Spain",
          "labelrank":"2",
          "country-abbrev":"Sp.",
          "subregion":"Southern Europe",
          "region-wb":"Europe & Central Asia",
          "iso-a3":"ESP","iso-a2":"ES","woe-id":"23424950",
          "continent":"Europe"
    },
    "geometry":{
       "type":"MultiPolygon",
       "coordinates":[
    [
     [
      [4045, 7594],
      [4021, 7599],
      [4011, 7621],
      [3984, 7629],
      [3997, 7692],
      [3998, 7762],
      [4020, 7781],
      [4009, 7795],
      [3944, 7795],
      [3930, 7838],
      [3969, 7860],
      [3988, 7852],
      [4098, 7851],
      [4151, 7846],
      [4203, 7821],
      [4246, 7818],
      [4249, 7812],
      [4255, 7814],
      [4262, 7812],
      [4262, 7813],
      [4262, 7814],
      [4263, 7812],
      [4263, 7812],
      [4279, 7808],
      [4298, 7812],
      [4300, 7795],
      [4265, 7771],
      [4233, 7763],
      [4194, 7709],
      [4211, 7683],
      [4189, 7669],
      [4183, 7644],
      [4154, 7635],
      [4143, 7615],
      [4072, 7613],
      [4046, 7594],
      [4045, 7594]
     ]
    ]
   ]
   }
});

0
ответ дан S Jordan 16 January 2019 в 09:05
поделиться

Вы также можете создать собственную карту: https://www.highcharts.com/docs/maps/custom-geojson-maps

или удалить Канарские острова из графического изображения точки. , но тогда они полностью исчезнут с карты:

    chart: {
        events: {
            load: function() {
                var point = this.series[0].points[0],
                    pathArr = point.graphic.attr('d').split('M');

                pathArr.shift();

                point.graphic.attr({
                    'd': 'M' + pathArr[3]
                });
            }
        }
    }

Демонстрационная версия: http://jsfiddle.net/BlackLabel/6oa08vyd/

API: [ 113] https://api.highcharts.com/class-reference/Highcharts.SVGElement#attr

0
ответ дан ppotaczek 16 January 2019 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: