Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次我调用这个函数时,旧的标记都会后退,新的标记会出现,有什么方法可以解决这个问题吗?_Javascript_Loops_Here Api - Fatal编程技术网

Javascript 每次我调用这个函数时,旧的标记都会后退,新的标记会出现,有什么方法可以解决这个问题吗?

Javascript 每次我调用这个函数时,旧的标记都会后退,新的标记会出现,有什么方法可以解决这个问题吗?,javascript,loops,here-api,Javascript,Loops,Here Api,为上一条多段线创建了新的线串,因此每次都会有新的管线出现,但标记会后退!for循环在manuver点处创建标记 函数addManuerTomap(路由){ var svgMarkup=“”+ '' + '', dotIcon=newh.map.Icon(svgMarkup,{anchor:{x:8,y:8}), 我 J //为每个动作添加一个标记 对于(i=0;i

为上一条多段线创建了新的线串,因此每次都会有新的管线出现,但标记会后退!for循环在manuver点处创建标记

函数addManuerTomap(路由){
var svgMarkup=“”+
'' +
'',
dotIcon=newh.map.Icon(svgMarkup,{anchor:{x:8,y:8}),
我
J
//为每个动作添加一个标记
对于(i=0;i
您应该从组中删除以前添加的对象

只需在方法的开头添加
group.removeAll()

此外,为了获得更好的性能,您应该将创建
svgMarkup
dotIcon
的代码移出此方法

function addManueversToMap(route){
      var svgMarkup = '<svg width="18" height="18" ' +
        'xmlns="http://www.w3.org/2000/svg">' +
        '<circle cx="8" cy="8" r="8" ' +
          'fill="#1b468d" stroke="white" stroke-width="1"  />' +
        '</svg>',
        dotIcon = new H.map.Icon(svgMarkup, {anchor: {x:8, y:8}}),

        i,
        j;

      // Add a marker for each maneuver
      for (i = 0;  i < route.leg.length; i += 1) {
        for (j = 0;  j < route.leg[i].maneuver.length; j += 1) {
          // Get the next maneuver.
          var maneuver = route.leg[i].maneuver[j];
          // Add a marker to the maneuvers group
          var marker =  new H.map.Marker({
            lat: maneuver.position.latitude,
            lng: maneuver.position.longitude} ,
            {icon: dotIcon});
          marker.instruction = maneuver.instruction;
          group.addObject(marker);
        }
      }

      group.addEventListener('tap', function (evt) {
        map.setCenter(evt.target.getGeometry());
        openBubble(
           evt.target.getGeometry(), evt.target.instruction);
      }, false);

      // Add the maneuvers group to the map
      map.addObject(group);
    }