Android рассчитан на расстоянии от пользователя? [Дубликат]

//Arrange the Picture Of Path.***

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    pictureBox1.Image = Image.FromFile(openFileDialog1.FileName);

                    string[] PicPathArray;
                    string ArrangePathOfPic;

                    PicPathArray = openFileDialog1.FileName.Split('\\');

                    ArrangePathOfPic = PicPathArray[0] + "\\\\" + PicPathArray[1];
                    for (int a = 2; a < PicPathArray.Length; a++)
                    {
                        ArrangePathOfPic = ArrangePathOfPic + "\\\\" + PicPathArray[a];
                    }
               }

// Save the path Of Pic in database

                    SqlConnection con = new SqlConnection("Data Source=baqar-pc\\baqar;Initial Catalog=Prac;Integrated Security=True");
                    con.Open();

                    SqlCommand cmd = new SqlCommand("insert into PictureTable (Pic_Path) values (@Pic_Path)", con);
                    cmd.Parameters.Add("@Pic_Path", SqlDbType.VarChar).Value = ArrangePathOfPic;

                    cmd.ExecuteNonQuery();

***// Get the Picture Path in Database.***

SqlConnection con = new SqlConnection("Data Source=baqar-pc\\baqar;Initial Catalog=Prac;Integrated Security=True");
                con.Open();

                SqlCommand cmd = new SqlCommand("Select * from Pic_Path where ID = @ID", con);

                SqlDataAdapter adp = new SqlDataAdapter();
                cmd.Parameters.Add("@ID",SqlDbType.VarChar).Value = "1";
                adp.SelectCommand = cmd;

                DataTable DT = new DataTable();

                adp.Fill(DT);

                DataRow DR = DT.Rows[0];
                pictureBox1.Image = Image.FromFile(DR["Pic_Path"].ToString());
2
задан androider 1 January 2015 в 16:59
поделиться

4 ответа

Вы можете рассчитать расстояние между двумя точками, используя следующую функцию

double distanceBetweenTwoPoint(double srcLat, double srcLng, double desLat, double desLng) {
    double earthRadius = 3958.75;
    double dLat = Math.toRadians(desLat - srcLat);
    double dLng = Math.toRadians(desLng - srcLng);
    double a = Math.sin(dLat / 2) * Math.sin(dLat / 2)
            + Math.cos(Math.toRadians(srcLat))
            * Math.cos(Math.toRadians(desLat)) * Math.sin(dLng / 2)
            * Math.sin(dLng / 2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
    double dist = earthRadius * c;

    double meterConversion = 1609;

    return (int) (dist * meterConversion);
}

Для второй части: для использования ложных или выборочных данных вы можете использовать приложение «Поддельный GPS» из магазина воспроизведения, которое будет генерировать макет местоположения на вашем устройстве.

Happy Coding

0
ответ дан BeingMIAkashs 16 August 2018 в 04:25
поделиться
  • 1
    Это "прямая линия" расстояние от одной точки до другой. То, что он хочет, - это дистанция. – bajicdusko 1 January 2015 в 14:20
  • 2
    Он заявил в вопросе «У меня есть координаты начальной точки и вы можете получить текущее местоположение пользователя. Как рассчитать расстояние. – BeingMIAkashs 1 January 2015 в 14:30
  • 3
    я хочу, чтобы расстояние проходило не прямолинейное расстояние между точками – androider 1 January 2015 в 16:37

Существует три способа проверки пройденного расстояния -

  1. Используя GPS, проверьте координату между двумя точками, используя distanceTo класса Location.
  2. Используя акселерометр, вы можете проверить движение устройства с помощью Accelerometer .
  3. Использование Детектор шагов - это последнее обновление Android.

Надеюсь, это поможет вам достичь своей цели:)

0
ответ дан Community 16 August 2018 в 04:25
поделиться
  • 1
    Рассчитывает ли это расстояние, пройденное транспортным средством (или пользователем)? – androider 2 January 2015 в 07:05
  • 2
    @androider - Вы нашли решение для расчета расстояния, пройденного автомобилем без GPS – Android is everything for me 22 February 2018 в 12:27

Для первого вопроса. У вас есть координаты начала и текущие координаты местоположения пользователя, так что вы можете сделать, это библиотека google api v3 предоставляет метод, который берет начало LatLng и конечный LatLng и дает расстояние. Добавьте api v3 jar в свой путь сборки android. Для второй карты goo google и укажите детали местоположения.

0
ответ дан Manikanta 16 August 2018 в 04:25
поделиться

Надеюсь, следующее следующее поможет: в моем приложении я начал собирать long longs после каждых 3 футов (я установил 3ft только для тестирования). Я собрал длинные латы следующим образом:

Теперь я начал вычислять расстояние от точки 1 до 2, а затем от 2 до 3, а затем от 3 до 4 и так далее на. После суммирования я получил общее расстояние от 1 до 5. Я использовал следующие функции для вычисления расстояния:

    public double GetDistanceFromLatLonInKm(double lat1, double lon1, double lat2, double lon2)
    {
        final int R = 6371;
        // Radius of the earth in km
        double dLat = deg2rad(lat2 - lat1);
        // deg2rad below
        double dLon = deg2rad(lon2 - lon1);
        double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2);
        double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        double d = R * c;
        // Distance in km
        return d;
    }
    private double deg2rad(double deg)
    {
        return deg * (Math.PI / 180);
    }

Этот метод вычисляет точное расстояние для меня.

2
ответ дан Manpreet Singh Dhillon 16 August 2018 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: