kartograph.js如何通过路径ID获取元素?

时间:2014-12-05 07:54:49

标签: javascript jquery gis kartograph

我正在使用kartograph.js并且我有几个连接区域/路径的svg我希望通过着色它突出显示点击区域,然后在另一个div上显示有关它的其他信息。单击新形状时,我无法删除形状的高光。我怎么能做到这一点?谢谢!

    var previd=0;
var prevpath;


function mapLoaded(map) {
  map.addLayer('mylayer', {

  tooltips: function(d) {
    return [d.watershedname,"area: "+d.area];
  },


  styles: {
        stroke: '#aaa',
        fill: '#f6f4f2'
  },

click: function(d, path) {
        // @path is a Raphael.element, do with it whatever you like
        // @d holds the data attached to each path

    //retrieve and set text to other div
    $("#infoname").text(d.watershedname);
    $("#infoarea").text(numberWithCommas(Math.floor(d.area))+" hectares");
    //highlight the selected path
    path.attr('fill', 'red');



    //i'm trying to get the previous path by id here
    //so i can remove the previous highlight
    //doesn't work

    prevpath =mylayer.getById(previd);
    prevpath.attr('fill','blue');

    //set the new id for later access
    previd=path.attr('id');

    }

});//end of add layer


 }//end of mapLoaded

1 个答案:

答案 0 :(得分:0)

II获得了ID,我使用了Layer.getPaths({column:value});



    var templayer = map.getLayer('mylayer').getPaths({watershedname:selected});

    templayer.forEach(function(entry) {
         entry['svgPath'].attr('fill','#f6f4f2');
    });