mapkit JS:如何绘制具有多个坐标的折线

问题描述

我正在尝试使用 mapkit js 在苹果地图上绘制折线。无法在地图上显示任何内容

我的项目由地图上的许多位置组成。所有标记都在地图上,点击一个标记将打开信息窗口并在地图上绘制一条折线。

map = new mapkit.Map("map");
function plottrailsCompound(data,map){
    if(data.reststatus.status == "OK"){
        if(annotations){
            map.removeAnnotations(annotations); 
            annotations = [];
        }
        var landmarkAnnotationCallout = {
            calloutElementForAnnotation: function(annotation) {
            var cccDiv = calloutForLandmarkAnnotation(annotation,map);
            return cccDiv;
            },calloutAppearanceAnimationForAnnotation: function(annotation) {
            return "scale-and-fadein .4s 0 1 normal cubic-bezier(8,1,1.5)";
            }
        };
    }
}
function calloutForLandmarkAnnotation(data,map){
    DrawpolyLine(map);
}
function DrawpolyLine(map){
    var points = [[37.73438,-119.56517],[37.73435,-119.56513],[37.73431,-119.56509]];
    var coords = points.map(function(point) {
        return new mapkit.Coordinate(point[0],point[1]);
    });
    var style = new mapkit.Style({
        linewidth: 2,lineJoin: "round",lineDash: [8,4],strokeColor: "#F0F"
    });
    var polyline = new mapkit.polylineOverlay(coords,{ style: style });
    map.addOverlay(polyline);
}

我正在 calloutForLandmarkAnnotation 中绘制我的信息窗口,这里没有显示DrawpolyLine 函数有 points 变量,它有三个坐标,但实际上我有更多。有些有大约 100 个坐标。如果你们需要任何其他信息来解决这个问题,请告诉我。

解决方法

map.addOverlay() 将折线添加到地图,但要将用户带到添加折线的位置,您还需要调用此函数:

map.showItems(polyline);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...