Мы создаем веб-приложение, которое использует карту 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);
}
}
Снимки экрана
После выбора двух точек я заметил, что вторая точка имеет неправильный лат /длинные значения.
Это вычисляет расстояние между двумя точками как
фактическое расстояние должно быть следующим (esriрезультат виджета)
Если бы я снова выбрал две точки, он генерирует правильное расстояние