Рисовать квадрат вокруг точки с лат-длиннойC#

Место общения программистов C#
Ответить
Anonymous
 Рисовать квадрат вокруг точки с лат-длинной

Сообщение Anonymous »

Я пытаюсь нарисовать квадрат < /strong> вокруг данной точки на поверхности Земли. Здесь и здесь и в конечном итоге придумали это:-< /p>

// Converting degrees to radians
double latInDecimals = (Math.PI / 180) * latitude;
double longInDecimals = (Math.PI / 180) * longitude;

List lstStrCoords = new List();

double changeInLat;
double changeInLong;
double lineOfLat;

// Calculating change in latitude for square of side
changeInLong = (side / 1000) * (360.0 / 40075);

// Calculating length of longitude at that point of latitude
lineOfLat = Math.Cos(longitude) * 40075;

// Calculating change in longitude for square of side 'side'
changeInLat = (side / 1000) * (360.0 / lineOfLat);

// Converting changes into radians
changeInLat = changeInLat * (Math.PI / 180);
changeInLong = changeInLong * (Math.PI / 180);

double nLat = changeInLat * (Math.Sqrt(2) / 2);
double nLong = changeInLong * (Math.Sqrt(2) / 2);

double coordLat1 = latInDecimals + nLat;
double coordLong1 = longInDecimals + nLong;

double coordLat2 = latInDecimals + nLat;
double coordLong2 = longInDecimals - nLong;

double coordLat3 = latInDecimals - nLat;
double coordLong3 = longInDecimals - nLong;

double coordLat4 = latInDecimals - nLat;
double coordLong4 = longInDecimals + nLong;

// Converting coords back to degrees

coordLat1 = coordLat1 * (180 / Math.PI);
coordLat2 = coordLat2 * (180 / Math.PI);
coordLat3 = coordLat3 * (180 / Math.PI);
coordLat4 = coordLat4 * (180 / Math.PI);

coordLong1 = coordLong1 * (180 / Math.PI);
coordLong2 = coordLong2 * (180 / Math.PI);
coordLong3 = coordLong3 * (180 / Math.PI);
coordLong4 = coordLong4 * (180 / Math.PI);
< /code>

Теперь, даже если это работает, многоугольник, который я получаю от присоединения к ним, является прямоугольником. < /p>



Я не понимаю, что не так с моим кодом.

Подробнее здесь: https://stackoverflow.com/questions/138 ... long-point
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»