2016-05-17 5 views
2

Ich verstehe, dass die minimierte Datei aus der ZIP ist nur der Basiscode und enthält keine Bibliotheken. Daher habe ich die Datei build.sh ausgeführt und eine weitere verkleinerte Datei erstellt, die ich in meine Skripts aufgenommen habe.jVectorMap - setFocus Fehler - jQuery

Erwartung:

ich auf einen Marker, um es zu vergrößern versucht bin, wenn darauf geklickt wird. Ich habe eine Funktion, die auf dem Ereignis ausgeführt wird, onMarkerClick.

Das Problem:

ich (2) verschiedene Beiträge ausgesehen haben:

Beide Beiträge produzieren th Derselbe genaue Fehler.

Der Fehler:

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

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

Offenbar +scale+ ist keine Zahl (NaN)

+0

Hallo Rob; Kannst du eine Geige spielen, um dein Problem zu reproduzieren? – Hackerman

Antwort

2

ich ein paar Fehler hatte, aber schließlich verengt Nieder. Zuerst dachte ich, dass cmarkers[c].latitude und hatte, aber es tat es nicht. Weiter Fehler vorging nicht um die Konfiguration der setFocus Funktion

 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) 
} 

Update:

Im Fall, dass Sie jemals zur vollständigen Karte schwenken zurück und legen Sie den Fokus auf das Zentrum der Karte:

// 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) 
} 
0

Ich habe heute mit diesem Problem gekämpft und ich werde meine Lösung hier lassen, falls ich jemandem helfen könnte.

ich den gleichen Fehler wurde, während das Bestehen der ID wie diese zu konzentrieren versuchen:

$('#world-map').vectorMap('get', 'mapObject'); 
map.setFocus(regionId) 

Aber Sie haben ein Objekt zu übergeben, wie unten geschrieben und es funktioniert perfekt. Die Dokumentation sagt es, aber es ist nicht so klar, mit einem Beispiel würde es besser funktionieren

$('#world-map').vectorMap('get', 'mapObject'); 
map.setFocus({region: regionId})