我知道谷歌地图有标记来突出地图中的某些点。但由于个人原因,我不太想在我的网站上使用这种类型的地图,而喜欢 jVector Map 的效果。但是,我无法弄清楚如何在 jVectorMap 中定义标记,是否有人知道如何在 jVectorMap 中定义标记并突出显示这些点?我还想知道如何使用经度和纬度在 jVector Map 中到达特定点。
谢谢。
我知道谷歌地图有标记来突出地图中的某些点。但由于个人原因,我不太想在我的网站上使用这种类型的地图,而喜欢 jVector Map 的效果。但是,我无法弄清楚如何在 jVectorMap 中定义标记,是否有人知道如何在 jVectorMap 中定义标记并突出显示这些点?我还想知道如何使用经度和纬度在 jVector Map 中到达特定点。
谢谢。
现在,您可以使用jVectorMap的新版本(0.2)通过 markers
参数来实现此功能。在此处查看演示:http://jvectormap.com/examples/markers-world/。
function vanDerGrinten(lat, lng) {
lat = lat * Math.PI / 180;
lng = lng * Math.PI / 180;
var lng0 = 0;
var A1 = 0.5 * Math.abs((Math.PI / (lng - lng0) - (lng - lng0) / Math.PI));
var phi = Math.asin(Math.abs(2 * lat / Math.PI));
var G = Math.cos(phi) / (Math.sin(phi) + Math.cos(phi) - 1);
P = G * (2 / Math.sin(phi) - 1);
Q = A1 * A1 + G;
x0 = A1 * A1 * (G - P * P) * (G - P * P) - (P * P + A1 * A1) * (G * G - P * P);
x1 = (A1 * (G - P * P) + Math.sqrt(x0));
x2 = (P * P + A1 * A1);
x = sgn(lng - lng0) * Math.PI * x1 / x2;
y = sgn(lat) * Math.PI * Math.abs(P * Q - A1 * Math.sqrt((A1 * A1 + 1) * (P * P + A1 * A1) - Q * Q)) / (P * P + A1 * A1);
return { _x: x, _y: y };
}