从Qlik Sense到JavaScript获取变量

从Qlik Sense到JavaScript获取变量,javascript,google-maps-api-3,qliksense,Javascript,Google Maps Api 3,Qliksense,我是JS新手,我有一个来自Qlik的扩展,我正在尝试改变,我需要根据一个变量指向一些引脚。若变量$type的值为'A',我使用某个管脚,若值为'B',则使用另一个管脚,依此类推。但我真的不知道这个扩展是如何从QS得到值的。需要帮忙吗 遵循JS: require.config({ 路径:{ 异步:'/extensions/GoogleMaps Sense/lib/async', markerclusterer:“/extensions/GoogleMaps Sense/lib/markerclus

我是JS新手,我有一个来自Qlik的扩展,我正在尝试改变,我需要根据一个变量指向一些引脚。若变量$type的值为'A',我使用某个管脚,若值为'B',则使用另一个管脚,依此类推。但我真的不知道这个扩展是如何从QS得到值的。需要帮忙吗

遵循JS:

require.config({
路径:{
异步:'/extensions/GoogleMaps Sense/lib/async',
markerclusterer:“/extensions/GoogleMaps Sense/lib/markerclusterer”
},
垫片:{
“markerclusterer”:{
出口:“MarkerClusterer”
}
}
});
定义(['qlik','./src/properties','./src/styles','markerclusterer','./src/缩写编号','qvangular','async!https://maps.googleapis.com/maps/api/js?key=AIzaSyASz5bdD789VzsLyki1JCKhSnCd5pEPY3Q'],函数(qlik,属性,样式,MarkerClusterer,缩写编号,qv){
var BASE_URL='/extensions/GoogleMaps Sense/';
if(typeof(Number.prototype.toRad)=“未定义”){
Number.prototype.toRad=函数(){
返回这个*Math.PI/180;
}
}
if(typeof(Number.prototype.toDeg)=“未定义”){
Number.prototype.toDeg=函数(){
返回这个*180/Math.PI;
}
}
返回{
初始属性:{
版本:1,,
qHyperCubeDef:{
qSuppressZero:对,
qSuppressMissing:true
},
GMAP:{
群集:{
一种风格:假,
最大缩放:10
},
地图:{
模式:“群集”,
customIcon:null,
iconUrl:“”,
maxZoom:18,
样式:“默认”
}
}
},
定义:属性,
快照:{
坎塔克:对
},
绘制:功能($element,layout){
$element.empty();
this.backendApi.cacheCube.enabled=false;
var_this=这个;
var标记=[];
var selectedMarkers=[];
var矩形=[];
var selectedRects=[];
var columns=layout.qsupercube.qSize.qcx;
var totalheight=layout.qsupercube.qSize.qcy;
var pageheight=数学楼层(10000/列);
var numberOfPages=Math.ceil(总高度/页面高度);
var Promise=qv.getService(“$q”);
var promises=Array.apply(null,数组(numberOfPages)).map(函数(数据,索引){
变量页={
qTop:(页面高度*索引)+索引,
qLeft:0,
qWidth:列,
qHeight:pageheight
};
返回此.backendApi.getData([page]);
},本页)
承诺。所有(承诺)。然后(函数(数据){
渲染(数据);
});
函数渲染(数据){
var useCustomStyle=layout.gmaps.map.style!=“默认值”;
var hasMeasure=layout.qHyperCube.qMeasureInfo.length>=1?真:假;
var hasPopup=layout.qHyperCube.qMeasureInfo.length==2?真:假;
//边界对象,用于根据数据确定要显示地图的哪一部分
var bounds=new google.maps.LatLngBounds();
变量映射选项={
maxZoom:layout.gmaps.map.maxZoom,
泛控制:对,
动物控制:对,
overviewMapControl:错误,
概述MapControlOptions:{
开放:假
},
scaleControl:false,
街景控制:对,
mapTypeControlOptions:{
MapTypeId:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.TERRAIN,google.maps.MapTypeId.HYBRID,'map_style']
}
};
//将地图放在页面上,以便提供一些视觉反馈
var map=new google.maps.map($element.get(0),mapOptions);
如果(使用自定义样式){
var selectedStyle=styles.filter(函数(d){
返回d.key==layout.gmaps.map.style
});
var styledMap=new google.maps.StyledMapType(selectedStyle[0]。数据{
名称:layout.gmaps.map.style
});
map.mapTypes.set('map\u style',styledMap);
setMapTypeId('map_style');
};
//为每行数据创建一个标记
data.forEach(功能(obj){
obj[0].qMatrix.forEach(函数(行,索引){
if(行[0].qText='-')返回;
//解析维度
var latlng=JSON.parse(行[0].qText);
//当QS发送长lat时,颠倒顺序
var point=new google.maps.LatLng(LatLng[1],LatLng[0]);
//创建我们的标记-如果我们有一个表达式,则使用该默认值来显示位置
var图像处理https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png';
var marker=new google.maps.marker({
位置:点,,
标题:“”,
图标:图像,
customData:hasMeasure?行[1]。qText:1,
qElem:行[0]。qElemNumber
});
//如果每个标记都有弹出值,则创建弹出窗口
如果(弹出){
marker.infoWindow=新建google.maps.infoWindow({
内容:第[2]行。qText
});
google.maps.event.addListener(标记'mouseover',函数(){
this.infoWindow.open(地图,this);
});
google.maps.event.addListener(标记'mouseout',函数(){
this.infoWindow.close();
});
};
//添加单击处理程序
google.maps.event.addListener(标记,'click',(函数(值)){
返回函数(){
_选择值(0,[value],true);
高亮标记(值)
}
})(行[0].qElemNumber));
扩展(点);
标记器。推(标记器);
});
});
//使地图适应边界
映射边界(bounds);
//启用群集
如果(layout.gmaps.map.mode==='cluster'){
如果(layout.gmaps.cl
/**
* Retrieve the values of a list of variables.
*
* Since $q.all fails on the first error, we have to resolve all first
*
* @param {string[]} `varList` - The variable names.
* @param {object} `app` - The (Qlik Sense) app.
*
* @returns {Promise}
*
* @api public
*/
this.getEngineVarListValues = function ( app, varList ) {

if ( varList && Array.isArray( varList ) ) {
    var promises = [];
    varList.forEach( function ( variable ) {
        promises.push( self.getEngineVarValue( app, variable ) )
    } );
    return $q.all( promises );
}
return $q.reject( new Error( 'getEngineVarListValues variable list passed.' ) );
};
var app = qlik.currApp();
    //get the variable content
    app.variable.getContent('MYVAR',function ( reply ){
    alert( JSON.stringify( reply ) );
});