想知道是否有人有经验或可以在逻辑上提供帮助,以使用Bing地图跟踪用户(汽车)

当用户旅行时,应该画出他们的旅程的路线,但是要紧贴道路(这是我目前设定的方式),将通过建筑物来画线。

因为只要位置有更新,就会计算2个点并将一条线添加到地图

(目前正在使用watchPosition,但将来每30秒就会获得位置)

  watchPos() {
    let options = { timeout: 60000 }
    this.watchId = navigator.geolocation.watchPosition((position) => {
      this.lat = position.coords.latitude;
      this.lng = position.coords.longitude;
      this.setMap()
      console.log(this.lat, this.lng)
    }, this.errorHandler, options);

  }
  setMap() {
    this.loc = new Microsoft.Maps.Location(this.lat, this.lng);
    if (!this.initialised) {
      this.oldLoc = this.loc;
      this.initialised = true
      this.map = new Microsoft.Maps.Map(this.driveMap.nativeElement, {
        credentials: CONFIG.BING_API_KEY,
        center: this.loc,
        mapTypeId: Microsoft.Maps.MapTypeId.road,
        navigationBarMode: 2,
        zoom: this.zoom
      });
      this.user = new Microsoft.Maps.Pushpin(this.loc, { icon: '../images/icon.svg' });
      this.map.entities.push(this.user);
      // console.log(loc)
    } else {
      // Draw line
      // from this.oldLoc to this.loc
      let lineVertices = new Array(this.oldLoc, this.loc);
      let line = new Microsoft.Maps.Polyline(lineVertices);
      // Then set oldLoc to new loc
      this.oldLoc = this.loc
      this.map.entities.push(line);
      this.map.setView({
        center: this.loc
      });
      this.user.setLocation(this.loc);
    }
  }

最佳答案

Bing Maps在下周末发布了专门针对此目的开​​发的公路API。您传递GPS坐标,它将把它捕捉到道路上。此外,如果传递点数组,您还可以让它返回一条逻辑路径,该逻辑路径可以通过捕捉点。观看Bing Maps博客中的公告:https://blogs.bing.com/maps

关于javascript - 跟踪用户绘制折线捕捉到道路的地形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47419002/

10-13 02:24