Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: API для определения расстояния между объектами

Всем привет! Стоит задача создать калькулятор расчета грузоперевозки. Сейчас столкнулся с проблемой, как рассчитать расстояние от объекта к объекту (город).
Регион доставки Россия. То есть список городов должен тянуться из вне и рассчитывать расстояние.
Не подскажите какой нибудь сервис с бесплатным API?
Конечно, было бы шикарно, если у кого есть готовый вариант

Форма уже готова, нужно лишь подвязать к ней функционал.
Ответ: Amarul, Здравствуйте. Как вариант, воспользоваться API данного сервиса - .

Еще как вариант посмотреть в сторону от Google.

У яндекс API карты, есть функционал, но он жестко привязан к инициализации карты.

Вот пример при использовании первого сервиса:

HTML5
1
2
3
4
<input name="CitySender" type="text" placeholder="Откуда повезем" />
<input name="CityRecipient" type="text" placeholder="Куда везем" />
<button class="btn">Расчитать</button>
<div class="result"></div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$('.btn').click(function() {
 
  var CitySender = $('input[name="CitySender"]').val(); // отправка
  var CityRecipient = $('input[name="CityRecipient"]').val(); //получение
 
  $.ajax({
    url: 'http://calc-api.ru/app:geo-api/null?a=' + encodeURIComponent(CitySender) + "&b=" + encodeURIComponent(CityRecipient),
    dataType: "json",
    success: function(result) {
      $('.result').html(result.distanse + 'км');
    }
 
  });
})
Вопрос: Разработать программу вычисления расстояния между заданными множествами

Если кто может то был бы рад если б написали код , я вообще плох в етих темах, зарание спасибо.
Вот и Само задание:

На плоскости заданы множество n точек, 200 <= n и множество m точек,
100 <= m. По определению расстояние между множествами точек - это расстояние
между ближайшее размещенными точками этих множеств. разработать про-
грамму вычисления расстояния между заданными множествами и определения ко-
ординат ближайшее размещенных точек (если таких пар точек несколь-
ка, то взять одну из них). Для вычисления расстояния между множествами и
определение координат ближайшее размещенных точек использовать
процедуру, а для вычисления расстояния между точками - функцию.
Ответ: Спасибо огромное Puporev, полностью устраивает програма.
Вопрос: Определение расстояния до объекта

Добрый день. При выполнении лабораторной работы по физике возникла проблема.

Есть установка, выпускающая пулю, нужно определить, на какое расстояние от установки упадет пуля.

К установке приделан лазер и моторчик вращающий его. В последствии получается лазерная линия.
На расстоянии n метров располагается предмет, на котором отображается этот луч. При падении пули лазерная линия прерывается и отображается на пуле. Каким образом можно определить расстояние от палки до этой пули?

Используется OpenCV.
Ответ:
Сообщение от Seregamil
Непонятен принцип работы и как это сделать.
А, ну то есть самые мелочи остались, понятно...

Сообщение от Seregamil
принцип работы
Принцип работы объяснен например здесь:
Если объект условно находится на бесконечном расстоянии, то лазерный зайчик на этом объекте, будет находится в центре кадра. А чем ближе объект находится к камере, тем дальше зайчик от центра кадра.
Поэтому задача просто сводится к поиску лазерного зайчика на изображении и расчет расстояния от этого зайчика до центра кадра.
Поиск зайчика - задача не сложная, учитывая, что лазерный луч очень яркий и фиксированного цвета. В простейшем случае можно просто искать самую яркую точку на изображении.
Расчет расстояния - банален.
Вопрос: Расчёт расстояния между географическими объектами

Доброго времени суток.

Усть географические координаты точек в файле. В цикле они считываются, затем происходит обращение к подпрограмме, где расчитывается расстояние между ними в километрах с переходом из географической системы координат в декартову.Результат округляется и заносится в специальный файл. Но такой вопрос;
1. у меня есть результат правильной программы, сравниваю, отличия для разных точек разное, даже в 10 раз!
2.Хоть результаты и выводятся в файл, но в командную строку выводятся для некоторых случаев сообщения, что аргумент вида "[1234.45567654345678766544, -1.22223454456543457787e-009}" не является числом.
Расстояния нужно считать именно по этим формулам.Подскажите пожалуйста, что здесь не так. Вот проблемный код:

до входа в цикл создаём константу и центр области - начло новой системы координат:


Код Perl 6
1
2
3
4
5
6
7
8
$GR1=111.1111111; #km
$cfi=54;
$cla=109;
 
$dd0=acos(sin($cfi)*sin($cfi)+cos($cfi)*cos($cfi)*cos($cla-$cla));
$A=acos((sin($cfi)-sin($cfi)*cos($dd0))/(cos($cfi)*cos($dd0)));
$x0=$dd0*$GR1*sin($A);
$y0=$dd0*$GR1*cos($A);
(для первой точки будем считать расстояние от начала координат до неё)

Далее в подпрограмме:

$
Код Perl 6
1
2
3
4
5
6
7
8
9
dd0=acos(sin($cfi)*sin($fi)+cos($cfi)*cos($fi)*cos($la-$cla));
$A=acos((sin($fi)-sin($cfi)*cos($dd0))/(cos($cfi)*sin($dd0)));  #*pi/180
$x=$dd0*$GR1*sin($A);
$y=$dd0*$GR1*cos($A);
$ll2=sqrt(($x-$x0)*($x-$x0)+($y-$y0)*($y-$y0));
$l2=sprintf("%5.4f", $ll2);
 
$x0=$x;
$y0=$y;
Ответ: Была проблема с тригонометрией, это поправлено, но всё равно не правильные расчёты. Есть ошибка уже при расчёте A.
Вот исправленный код, но там что-то ещё не верно.
До цикла считаем координаты точки начала отсчёта (центр по географическим координатам):

Код Perl 6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$GR=111.1111111*180/pi; #km
$cfi=54;
$cla=109;
$cosdd0=sin($cfi*pi/180)*sin($cfi*pi/180)+cos($cfi*pi/180)*cos($cfi*pi/180)*cos($cla*pi/180-$cla*pi/180);
if ($cosdd0>=1){
$dd0=0.000000000000000000000000000000000000000000000000001*pi/180
}
elsif($cosdd0<=-1){
#$dd0=pi
$dd0=floor( ($earthRadius * pi * 100.0) / 100.0, 0)
}
else{
$dd0=acos($cosdd0)
}
$cosA=(sin($cfi*pi/180)-sin($cfi*pi/180)*cos($dd0))/(cos($cfi*pi/180)*sin($dd0));
if ($cosA>=1){
$A=0
}
elsif($cosA<=-1){
$A=pi
}
else{
$A=acos($cosA)
}
if (sin ($cla - $cla) < 0)
      {
         $A = 2*pi - $A;
      }
 
 
$x0=$dd0*$GR*sin($A);
$y0=$dd0*$GR*cos($A);
В цикле считаем координаты и расстояние между соседними событиями:

Код Perl 6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$cosdd0=sin($cfi*pi/180)*sin($fi*pi/180)+cos($cfi*pi/180)*cos($fi*pi/180)*cos($la*pi/180-$cla*pi/180);
if ($cosdd0>=1){
$dd0=0.000000000000000000000000000000000000000000000000001*pi/180
}
elsif($cosdd0<=-1){
#$dd0=pi
$dd0=floor (($earthRadius * pi * 100.0) / 100.0, 0)
}
else{
$dd0=acos($cosdd0)
}
 
$cosA=(sin($fi*pi/180)-sin($cfi*pi/180)*cos($dd0))/(cos($cfi*pi/180)*sin($dd0));
if ($cosA>=1){
$A=0
}
elsif($cosA<=-1){
$A=pi
}
else{
$A=acos($cosA)
}
if (sin ($la - $cla) < 0)
      {
         $A = 2*pi - $A;
      }
$x=$dd0*$GR*sin($A);
$y=$dd0*$GR*cos($A);
$ll2=sqrt(($x-$x0)*($x-$x0)+($y-$y0)*($y-$y0));
$l2=sprintf("%5.5f", $ll2);
 
$x0=$x;
$y0=$y;
Я уже и не знаю, что там не так...
Вопрос: Построить матрицу расстояний между всеми точками. Найти равноудаленные точки, если такие есть

Помогите, пожалуйста, выполнить задание. Насколько я понял, оно должно выполняться через двумерные массивы.
Вот само задание: На плоскости заданы n точек своими координатами. Построить матрицу расстояний между всеми точками. Найти равноудаленные точки, если такие есть, и напечатать их номера.
Ответ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var r:array[1..10,1..10] of real; //матрица расстояний
    t:array[1..2,1..10] of integer;//массив точек
    n,i,j,k,p,f:integer;
begin
randomize;
repeat
write('Количество точек от 4 до 10 n=');
readln(n);
until n in [4..10];
writeln('Координаты точек');
for i:=1 to n do
 begin
  t[1,i]:=-5+random(11);
  t[2,i]:=-5+random(11);
  write(i:2,'(',t[1,i]:3,';',t[2,i]:3,') ');
  if i mod 6=0 then writeln;
 end;
writeln(';');
for i:=1 to n-1 do
for j:=i+1 to n do
 begin
  //находим расстояние от точки i до точки j
  r[i,j]:=sqrt(sqr(t[1,i]-t[1,j])+sqr(t[2,i]-t[2,j]));
  //пишем его же для точек j, i
  r[j,i]:=r[i,j];
 end;
//выводим матрицу
writeln('Расстояния между точками');
write('1':7); //число 1 на 7 месте от начала строки
for i:=2 to n do
write(i:5); //остальные номера столбцов через 5 позиций
writeln; //отступ
for i:=1 to n do
 begin
  write(i:3); //выводим номер строки
  for j:=1 to n do
  write(r[i,j]:5:1); //расстояния до всех точек
  writeln;
 end;
writeln('Пары точек с равными расстояниями');
f:=0; //пока их нет
for i:=1 to n-1 do//первая пара
for j:=i+1 to n do
for k:=i+1 to n-1 do //вторая пара
for p:=k+1 to n do
if(i<>k)and(j<>p)//если один из индексов не совпадает
//и квадраты расстояний между точками i,j и k,p равны
and(sqr(t[1,i]-t[1,j])+sqr(t[2,i]-t[2,j])=sqr(t[1,k]-t[1,p])+sqr(t[2,k]-t[2,p]))
then begin//то
 f:=f+1;//пары есть
 write('[',i:2,',',j:2,'] и [',k:2,',',p:2,'] '); //выводим номера точек пар
 if f mod 4=0 then writeln;//в строку по 4 пары
end;
if f=0 then write('Таких пар нет');
end.
Вопрос: Определить расстояние между автомобилями через T часов, если автомобили удаляются друг от друга

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга
Ответ:
Сообщение от username12
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга

Не по теме:

это шутка, да?

Вопрос: Google API для вычисления расстояния между 2 город

Google API для вычисления расстояния между 2 городами.

Приветствую. Нужно сделать простую программу с использованием Google API для вычисления расстояния между 2 городами.
Никогда с этой темой не сталкивался, может быть кто знаком - посоветуйте какие нибудь источники, где что почитать, посмотреть...

Буду рад любой помощи.

Ответ:
Google API для вычисления расстояния между 2 городами.

Приветствую. Нужно сделать простую программу с использованием Google API для вычисления расстояния между 2 городами.
Никогда с этой темой не сталкивался, может быть кто знаком - посоветуйте какие нибудь источники, где что почитать, посмотреть...

Буду рад любой помощи.

Вопрос: Нахождение расстояния между точками

Четыре точки заданы своими координатами X(x1, x2), Y(y1, y2), Z(z1, z2), P(p1, p2). Выяснить, какие из них находятся на максимальном расстоянии друг от друга и найти значение этого расстояния. Вычисление расстояния между двумя точками оформить в виде процедуры.
Заранее спасибо))
Ответ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
uses crt;
type point=record
           s:char;
           x,y:real;
           end;
procedure rasst(a,b:point;var r:real);
begin
r:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
end;
var a:array[1..4] of point;
    i,j,ii,jj:byte;
    r,mx:real;
begin
clrscr;
a[1].s:='X';
writeln('Введите координаты точки X');
readln(a[1].x,a[1].y);
a[2].s:='Y';
writeln('Введите координаты точки Y');
readln(a[2].x,a[2].y);
a[3].s:='Z';
writeln('Введите координаты точки Z');
readln(a[3].x,a[3].y);
a[4].s:='P';
writeln('Введите координаты точки P');
readln(a[4].x,a[4].y);
mx:=-1;
for i:=1 to 3 do
for j:=i+1 to 4 do
 begin
  rasst(a[i],a[j],r);
  if r>mx then
   begin
    mx:=r;
    ii:=i;
    jj:=j;
   end;
 end;
writeln('Максимальное расстояние между точками ',a[ii].s,' и ',a[jj].s,' = ',mx:0:2);
readln
end.
Вопрос: Найти ближайший город к заданному зная расстояния между городами

Найти ближайший город к заданному зная расстояния между городами
Ответ:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace _1234 
{ 
class City 
{ 
 
protected int rowCount; 
protected int[,] internalArray; 
public City(int rows) 
{ 
rowCount = rows; 
internalArray = new int[rowCount, rowCount]; 
} 
 
 
public void Input() 
{ 
 
for (int i = 0; i < internalArray.GetLength(0); i++) 
{ 
for (int j = 0; j < internalArray.GetLength(1); j++) 
{ 
Console.WriteLine("Введите расстояние между городами {0} и {1}", i, j); 
internalArray[j, i] = internalArray[i, j] = Convert.ToInt32(Console.ReadLine()); 
} 
 
} 
} 
 
public void Output() 
{ 
 
Console.WriteLine(" Расстояния между городами "); 
for (int i = 0; i < internalArray.GetLength(0); ++i) 
{ 
for (int j = 0; j < internalArray.GetLength(1); ++j) 
{ 
Console.Write("{0,3} ", internalArray[i, j]); 
} 
Console.WriteLine(); 
} 
} 
 
public void Check(int k) 
{ 
Sorting(); 
int max = 9999; 
int n = 0; 
for (int i = 0; i < internalArray.GetLength(0); ++i) 
{ 
for (int j = 0; j < internalArray.GetLength(1); ++j) 
{ 
if ((i == k) && (internalArray[i,j] !=0)) 
{ 
if (internalArray[i,j]<max) 
{ max = internalArray[i, j]; 
n = j; 
} 
} 
 
} 
} 
Console.WriteLine(n); 
} 
 
 
 
 
public void Sorting() 
{ 
for (int i = 0; i < internalArray.GetLength(0); ++i) 
{ 
for (int j = 0; j < internalArray.GetLength(1); ++j) 
{ if (i == j) internalArray[i, j] = 0; } 
} 
} 
} 
 
 
class Program 
{ 
static void Main(string[] args) 
{ 
 
City c = new City(5); 
c.Input(); 
c.Sorting(); 
c.Output(); 
c.Check(3); 
Console.ReadKey(); 
} 
} 
}
Вопрос: Google API для вычисления расстояния между 2 городами.

Приветствую. Нужно сделать простую программу с использованием Google API для вычисления расстояния между 2 городами.
Никогда с этой темой не сталкивался, может быть кто знаком - посоветуйте какие нибудь источники, где что почитать, посмотреть...

Буду рад любой помощи.
Ответ: Hehabr,

Имеется ввиду географической расстояние между двумя точками на поверхности земли или расстояние маршрута, проложенного по имеющимся дорогам?