我使用Here Javascript API Explorer来跟踪一个主要用于Geo Fencing的移动地图对象。我想动态传递路径路径和fence路径,因为它到目前为止在代码中是硬编码的。
我试过用javascript array.push方法做到这一点,即动态传递两者的值。但它帮助我追加数组,但路由和围栏的路径没有加载,因为页面只加载一次,那时两个数组都是空的。
var routeArr = [52.53805, 13.4205, 52.53765, 13.42156, 52.53811, 13.42188,
52.53862, 13.42232, 52.53929, 13.42283, 52.53921, 13.42333];
var routeArr2 = [52.53805, 13.4209, 52.53765, 13.42156, 52.53811, 13.42188,
52.53862, 13.42232, 52.53929, 13.42284, 52.53921, 13.42333];
var route = new nokia.maps.map.Polyline(
new nokia.maps.geo.Strip(
routeArr,
"values lat lng"),
{ color: "#7FFF00", width: 2 }
),
imageMarker = new nokia.maps.map.Marker(
route.path.get(0),
{
icon: "../../res/markerTruck.png",
$id: "marker",
anchor: {x: 21, y: 41}
}
),
circle = new nokia.maps.map.Polyline(
new nokia.maps.geo.Strip(
routeArr2,
"values lat lng"),
{ color: "#000000", width: 2}
),
sceneContainer = new nokia.maps.map.Container([route, imageMarker, circle]);
map.addListener("displayready", function () {
map.objects.add(sceneContainer);
map.zoomTo(sceneContainer.getBoundingBox());
})
;
我想动态传递routeArr和routeArr2的上述值。 我们是否必须在页面加载之前提供路径路径和fence路径,或者是否有一种方法可以动态地传递数组?
答案 0 :(得分:0)
MapObject至少需要1个Point坐标和2个坐标作为形状。因此,您可以使用RouteArr1和RouteArr2初始化对象,然后使用routePolyline.set(“path”,STRIP)更改它; STRIP是你的新地带。