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);
Приветствия.
Джо, сценарий, который вы упомянули, уже сделал то, что вы хотите. С его помощью вы можете преобразовать широту и долготу и поместить ее в ссылку, чтобы увидеть местоположение на карте Google:
var url = "http://maps.google.com/maps?f=q&source=s_q&q=&vps=3&jsv=166d&sll=" + lat.parseDeg() + "," + longt.parseDeg()
Чтобы проанализировать ваш ввод, используйте следующее.
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 )
У меня есть несколько 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;
}