ArcGIS API for Javascript进行网络分析的代码

本文介绍了一个基于特定地理信息系统(GIS)的路线查找算法实现过程。该算法通过定义起点与终点,利用路线任务(RouteTask)和服务参数(RouteParameters)来计算两点间路径,并在地图上展示查询结果。如果查询失败,还会给出相应的错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心代码如下:

    _doFindRoute: function (fromStop, toStop) {

      this.routeGraphicLayer.clear()
      this.stopSymbol.setOffset(0, 20)
      this.routeGraphicLayer.add(new Graphic(fromStop, this.stopSymbol))
      
      routeTask = new RouteTask(this.routeTaskLayer)
      routeParams = new RouteParameters()
      routeParams.stops = new FeatureSet()
      routeParams.outSpatialReference = this._map.spatialReference
      var stop1 = new Graphic({
        geometry: fromStop,
        symbol: this.stopSymbol
      })

      var stop2 = new Graphic({
        geometry: toStop,
        symbol: this.stopSymbol
      })

      routeParams.stops.features.push(stop1)
      routeParams.stops.features.push(stop2)

      routeParams.returnRoutes = false
      routeParams.returnDirections = true
      routeParams.directionsLengthUnits = Units.METERS

      var routeSymbol = this.routeSymbol
      var graphicLayer = this._graphicLayer

      var map = this._map
      var _this = this

      routeTask.solve(routeParams,
        function (results) {
          results.routeResults.forEach(function (aResult) {
            aResult.directions.features.forEach(function (aRoute) {
              var aRouteSymbol = new Graphic(aRoute.geometry, routeSymbol)
              _this.routeGraphicLayer.add(aRouteSymbol)

              if (aRoute.attributes.length > 0) {
                map.setExtent(aRoute.geometry.getExtent().expand(2))
              }
            })
          })
        }.bind(this),
        function (errors) {
          console.log(errors.details[0])
          tips('未查询到路线!')
        }.bind(this))
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值