电源双自定义视觉使用json文件

时间:2018-12-06 10:19:06

标签: typescript d3.js powerbi

我开发了包含自定义地图的Power BI自定义视觉效果。该地图是在topojson帮助下生成的。如何在visual.ts文件中使用json文件?有可能吗?

我的代码:

let topojson = (<any>window).topojson;
let d3 = (<any>window).d3;
module powerbi.extensibility.visual {

    export class Visual implements IVisual {
        private target: HTMLElement;
        private updateCount: number;
        private settings: VisualSettings;
        private textNode: Text;

        constructor(options: VisualConstructorOptions) {
            console.log('Visual constructor', options);
            let width = window.innerWidth;
            let height = window.innerHeight;

            let svg = d3.select("body").append("svg").attr("width", width)
                .attr("height", height);

            d3.json("Regions.json", function (error, world) {
                if (error) {
                    // На случай, если карта не загрузилась 
                    console.log(error);
                    return;
                }


                svg.append("path")
                    .datum(topojson.feature(world, world.objects.RegionsMRSK))
                    .attr("d", d3.geoPath(d3.geoMercator()));
            });
        }

1 个答案:

答案 0 :(得分:1)

要在视觉效果代码中使用JSON,如果您使用最新版本的工具(powerbi-visuals-tools 2.xx),则需要通过http S 从某个Web服务器上获取JSON文件。 / p>

或者您可以使用beta版的工具(powerbi-visuals-tools 3.x.x)并尝试导入JSON文件:

import "Regions.json"

或者您熟悉webpack 4,可以使用webpack配置使用JSON文件:

https://github.com/Microsoft/powerbi-visuals-webpack-plugin#webpack-configuration-有一些基本的配置示例,可使用webpack构建自定义视觉