jVectorMap - setFocus错误 - jQuery

Rob*_*ott 4 javascript jquery jvectormap

我知道zip中的缩小文件只是基本代码,不包含库.因此,我运行该build.sh文件,它生成了我已包含在我的脚本中的另一个缩小文件.

期望:

点击时我试图放大标记.我有一个在事件上运行的函数onMarkerClick.

问题:

我看过(2)不同的帖子:

这两个帖子都会产生同样的错误.

错误:

Error: <g> attribute transform: Expected number, "scale(NaN) translate(N…". jquery.jvectormap.min.js:733

733行 - this.rootElement.node.setAttribute('transform', 'scale('+scale+') translate('+transX+', '+transY+')');

显然+scale+不是数字(NaN)

Rob*_*ott 7

我有一堆错误,但最终缩小了它.首先,我认为cmarkers[c].latitudemarkers[c].longitude,但是事实并非如此.下一个错误是没有将配置传递给setFocus函数

        onMarkerClick: function (e, c) {
             setFocusLatLng(5, markers[c].latLng[0], markers[c].latLng[1]);
        }

// sets focus on marker clicked
function setFocusLatLng(scale, lat, lng) {
    var mapObj = $('#map').vectorMap('get', 'mapObject');

    var config = {
        animate: true,
        lat: lat,
        lng: lng,
        scale: scale
    }

    mapObj.setFocus(config)
}
Run Code Online (Sandbox Code Playgroud)

更新:

如果您需要平移到完整地图并将焦点设置在地图的中心:

// sets focus on center of map and zooms back out to full view
function setFocusMapCenter() {
    var mapObj = $('#map').vectorMap('get', 'mapObject'),
        center = mapObj.pointToLatLng(mapObj.width / 2, mapObj.height / 2);

    var config = {
        animate: true,
        lat: center.lat,
        lng: center.lng,
        scale: 1
    }

    mapObj.setFocus(config)
}
Run Code Online (Sandbox Code Playgroud)