Нахождение Широты и Долготы вокруг известной широты и долготы, если расстояние известно - PullRequest
0 голосов
/ 23 марта 2019

Пожалуйста, проверьте код, который я пытался написать с помощью ссылки, предложенной людьми ниже.Пожалуйста, скажите, правильно ли я реализовал логику или нет.Я вставил данные в таблицу Excel, чтобы увидеть их график на http://www.copypastemap.com/map.php `

import java.io.File;
import java.io.IOException;

import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class FindingLatLongAlongACircle {
static double latitude= 35.306614; 
static double longitude= -80.7444093;
//static double circumofEarth= 40075000;
static double R=20;


public static void main(String[] args) throws IOException {
    File f= new File("C:\\Users\\Manu Chaudhary\\Desktop\\LatongAroundaPoint.xls");
    WritableWorkbook myexcel= Workbook.createWorkbook(f);
    WritableSheet mysheet= myexcel.createSheet("mysheet",0);

    int YAxis1=0;
    int YAxis2=0;
               //  Added now
    jxl.write.Label k1;
    jxl.write.Label k2;

     double angle=0;
     double angleRadian=0; 
    // double changeInLat;
     //double changeInLong;
     double dx;
     double dy;
     double final_latitude=0;
     double final_longitude=0;

     double delta_longitude;
     double delta_latitude;

        while(angle<360){
            angle=angle+15;
            angleRadian= Math.toRadians(angle);
            dx= R* Math.sin(angleRadian);
            dy= R* Math.cos(angleRadian);
            //changeInLat= (distance* Math.cos(angleRadian))/(circumofEarth* Math.cos(lat1));
            //changeInLong= (distance*Math.sin(angleRadian))/circumofEarth;

            //newLatitude= lat1+changeInLat;
            //newLongitude=long1+ changeInLong;
            delta_longitude= dx/(111320* Math.cos(latitude));
            delta_latitude= dy/110540;
            final_latitude= latitude+ delta_latitude;

            final_longitude=longitude+ delta_longitude;
            YAxis1++;
            YAxis2++;

            k1= new jxl.write.Label(0,YAxis1,Double.toString(final_latitude));
            k2= new jxl.write.Label(1,YAxis2,Double.toString(final_longitude));

                try {
                    mysheet.addCell(k1);
                } catch (RowsExceededException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (WriteException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    mysheet.addCell(k2);
                } catch (RowsExceededException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (WriteException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   

            System.out.println("The value of latitude at "+ angle + " angle is"+ final_latitude);
            System.out.println("The value of longitude at "+ angle + " angle is"+ final_longitude);


        }
        myexcel.write();

        try {
            myexcel.close();
                } catch (WriteException e) {

                e.printStackTrace();
            System.out.println("Finish");  
                }

        }


}

` Предположим, я знаю широту и долготу точки.Могу ли я рассчитать широту и долготу вокруг точки (около 16 точек), если я знаю расстояние разнесения?Я искал переполнение стека и нашел две полезные ссылки.

Для прояснения вопроса, пожалуйста, посмотрите необходимые широты и долготы.Пожалуйста, помогите мне с кодом на Python.

1 Ответ

0 голосов
/ 23 марта 2019

Это просто базовый триггер:

θ = угол возвышения в треугольнике, образованном соединением внешней точки с центральной точкой, затем продолжением линии 90 ° по горизонтали от центральной точки до тех пор, пока высота не сможет соединитьдве предварительно нарисованные линии

ec = окружность земли

расстояние • cos (θ) / (ec • cos (широта)) = Δlong

расстояние • sin (θ) /ec = Δlat

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

...