Dies kann mit einer Kombination von Jvectormap, Jvectormaps Koordinaten Konverter Methode latLngToPoint()
und einer SVG-Schicht auf der Jvectormap erfolgen. Wenn Sie SVG.js als Ebene über Jvectormap verwenden, können Sie praktisch alles tun, was Sie mit SVG tun können, während Sie Punkte durch Längen- und Breitengradkoordinaten ersetzen.
Sie müssen Jvectormap, die Jvectormap-Kartendatei, svg.js und svg.path.js-Plugin (siehe https://svgdotjs.github.io) in der Seitenüberschrift laden. Sie müssen außerdem zwei divs in einem erstellen, das sich mit den absoluten CSS-Einstellungen überschneiden kann.
<div id="mapContainer" style="position:relative">
<div id="map" style="position:absolute;top:0px;left:0px"></div>
<div id="svgMapOverlay" style="position:absolute;top:0px;left:0px"></div>
</div>
Erstellen Sie ein Array von Markern mit Breiten- und Längen für Leitungen zu und von auf der Karte zeichnen:
var markerArray = [
{name:'Houston', latLng:[29.761993,-95.369568]},
{name:'New York', latLng:[40.710833,-74.002533]},
{name:'Kansas City', latLng:[39.115145,-94.633484]}
];
Dann wird Ihr Jvectormap die Markierungen oben mit ein:
var map = $('#map').vectorMap({
map: 'us_aea_en',
zoomMin: 1,
zoomMax: 1,
markers: markerArray
});
Schließlich, rufen Sie Ihre Karte als ein Objekt, erstellen Sie Ihre SVG-Ebene, konvertieren Sie die lat-long-Koordinaten zu Punkten innerhalb der div:
var map = $('#map').vectorMap('get', 'mapObject');
var draw = SVG('svgMapOverlay').size(660, 400);
var coords1 = map.latLngToPoint(markerArray[0].latLng[0],markerArray[0].latLng[1]);
var coords2 = map.latLngToPoint(markerArray[1].latLng[0],markerArray[1].latLng[1]);
draw.path().attr({ fill: 'none',stroke: '#c00', 'stroke-width': 2 }).M(coords1.x, coords1.y).L(coords2.x, coords2.y);
Die meisten dieser JS sollte in einen $(function()
Anruf oder $(document).ready(function()
Block für den Start gehen.
Sie können diese JSFiddle sehen für weitere Informationen: http://jsfiddle.net/ruzel/V8dyd/
Haftungsausschluss: Ich weiß nicht, was mit Zoomen geschieht; Für dieses Beispiel ist es deaktiviert.