Преобразование широты и долготы к десятичным значениям

1) Как сказал Марк Гравелл, попробуйте использовать ОДИН генератор случайных чисел. Всегда здорово добавить это в конструктор: System.Environment.TickCount.

2) Один совет. Допустим, вы хотите создать 100 объектов и предположить, что у каждого из них должен быть свой собственный генератор случайных чисел (удобно, если вы вычисляете НАГРУЗКИ случайных чисел за очень короткий период времени). Если бы вы делали это в цикле (создание 100 объектов), вы могли бы сделать это так (чтобы обеспечить полную случайность):

int inMyRandSeed;

for(int i=0;i<100;i++)
{
   inMyRandSeed = System.Environment.TickCount + i;
   .
   .
   .
   myNewObject = new MyNewObject(inMyRandSeed);  
   .
   .
   .
}

// Usage: Random m_rndGen = new Random(inMyRandSeed);

Приветствия.

31
задан 16 July 2009 в 20:44
поделиться

3 ответа

Джо, сценарий, который вы упомянули, уже сделал то, что вы хотите. С его помощью вы можете преобразовать широту и долготу и поместить ее в ссылку, чтобы увидеть местоположение на карте Google:

var url = "http://maps.google.com/maps?f=q&source=s_q&q=&vps=3&jsv=166d&sll=" + lat.parseDeg() + "," + longt.parseDeg()
2
ответ дан 27 November 2019 в 21:45
поделиться

Чтобы проанализировать ваш ввод, используйте следующее.

function ParseDMS(input) {
    var parts = input.split(/[^\d\w]+/);
    var lat = ConvertDMSToDD(parts[0], parts[1], parts[2], parts[3]);
    var lng = ConvertDMSToDD(parts[4], parts[5], parts[6], parts[7]);
}

Следующий код преобразует вашу DMS в DD

function ConvertDMSToDD(degrees, minutes, seconds, direction) {
    var dd = degrees + minutes/60 + seconds/(60*60);

    if (direction == "S" || direction == "W") {
        dd = dd * -1;
    } // Don't do anything for N or E
    return dd;
}

Итак, ваш ввод даст следующее:

36°57'9" N  = 36.9525000
110°4'21" W = -110.0725000

Десятичные координаты могут быть введены в карты Google для получения точек через GLatLng (lat, lng) ( API Карт Google )

53
ответ дан 27 November 2019 в 21:45
поделиться

У меня есть несколько NaN для этой функции, и мне нужно это сделать (не спрашивайте меня, почему)

function ConvertDMSToDD(days, minutes, seconds, direction) {
    var dd = days + (minutes/60) + seconds/(60*60);
    dd = parseFloat(dd);
    if (direction == "S" || direction == "W") {
        dd *= -1;
    } // Don't do anything for N or E
    return dd;
}
3
ответ дан 27 November 2019 в 21:45
поделиться
Другие вопросы по тегам:

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