我开发了包含自定义地图的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()));
});
}
答案 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构建自定义视觉