Расчет расстояния между двумя точками, используя esri javascript api - PullRequest
0 голосов
/ 16 февраля 2019

Мы создаем веб-приложение, которое использует карту esri.То, что я пытаюсь сделать, это рассчитать расстояние между двумя точками.Координаты для этих точек находятся в двух отдельных объектах json.Затем я генерирую две точки esri, анализируя значения широты и долготы из этих двух объектов json.Для точек Esri требуется пространственная привязка, поэтому я устанавливаю пространственную привязку mapView в качестве пространственной привязки для двух точек.

Проблема: Когда я выбираю две точки, она полностью переписывает широту и долготу одногоиз точек.Это приводит к смешному вычислению двух пунктов.

Это то, что я пробовал

//calling the distance function

distance = this.distanceCalculator(incidentCenter, residence);

//distance calc function
  private distanceCalculator(firstPt, secondPt): any {
    //this.measureLayer.removeAll();

    // When calculating the distance betweeen two points , we need to decypher the points coming in and attach a spatial reference.
    const pointA: esri.Point = new this.Point({
      spatialReference: this.mapView$.value.spatialReference,
      latitude: firstPt.latitude,
      longitude: firstPt.longitude
    });

    //so whats happening here is that 
    const pointB: esri.Point = new this.Point({
      spatialReference: this.mapView$.value.spatialReference,
      latitude: secondPt.latitude,
      longitude: secondPt.longitude
    });


    console.log("Point a and B");
    console.log("point a: ", pointA);
    console.log("point b: ", pointB);

    // Next we call the GemoetryEngine distance function and calculate the distance between the two points.

    try {
      const miles = this.GeometryEngine.distance(pointA, pointB, 'kilometers');
      const kms = miles * this.MilesToKm;
      return kms.toFixed(2);
    } catch (e) {
      this.logger.error('Error indistanceCalculator ', e);
    }
  }

Снимки экрана

После выбора двух точек я заметил, что вторая точка имеет неправильный лат /длинные значения.enter image description here

Это вычисляет расстояние между двумя точками как enter image description here

фактическое расстояние должно быть следующим (esriрезультат виджета)

enter image description here

Если бы я снова выбрал две точки, он генерирует правильное расстояние

enter image description here

1 Ответ

0 голосов
/ 19 февраля 2019

Яйцо в момент лица для меня, я установил лат и долго неправильно одну точку в коде, который привел к этой ошибке.Спасибо всем за помощь.

...