如何从topojson文件中以多边形显示文本标签?

时间:2017-01-24 01:15:31

标签: javascript leaflet topojson

我正在使用Leaflet构建的地图上有一个topoJSON文件,该文件是构成欧洲和世界其他地区的国家边界的featureCollection。功能集包含每个国家/地区的属性名称。

问题:为每个国家/地区的多边形设置一个国家/地区名称的推荐方法是什么?我应该使用传单的工具提示功能吗?我使用this example作为起点,但无法显示我的文字标签。有任何想法吗?我有一个topojson文件,其中包含我想要提取的属性。

My fiddle

var earth = L.geoJson();
earth.bindTooltip('text label', {
    permanent: true,
    direction: 'center'
});


var naturalEarth = omnivore.topojson('https://gist.githubusercontent.com/dosstx/dcd1b4ebe3892527b12759226a21b900/raw/81abff4d455dbabe800c56aa7736dd4cbbfd1f64/topo.json', null, earth);

1 个答案:

答案 0 :(得分:1)

要使用Leaflet杂志将工具提示绑定到每个图层,请使用Leaflet's eachLayer function迭代topojson中的所有图层,然后再准备好。

E.g。

var naturalEarth = omnivore.topojson('https://gist.githubusercontent.com/dosstx/dcd1b4ebe3892527b12759226a21b900/raw/81abff4d455dbabe800c56aa7736dd4cbbfd1f64/topo.json', null, earth)
  .on('ready', function() {
      naturalEarth.eachLayer(function(layer) { 
          //console.log(layer); //to inspect what properties are available
          layer.bindTooltip(layer.feature.properties.FORMAL_EN, {
              permanent: true
          });
      });
  });

更新了JSFiddle:https://jsfiddle.net/kjLjhbe1/8/