думаю будет не совсем объективный рейтинг, в случае голосования самими пользователями… Имхо, рейтинг должен состоять из нескольких составляющих, сумма/количество успешных обменов, отзывы и активность на бирже…
Мне интересен Ваш сервис, простите если обидел. Но идея универсальной биржи существует давно. Пишут ее многие. У меня вопрос, на основе чего строится рейтинг пользователей? Коэффициент количества и суммы успешных обменов? Или что-то другое? Если 1-вариант как Вы ставите баллы рейтинга и как приводите к общему знаменателю суммы разных валюты? Например обмен 1000 рублей и 100$. Переводите на основную валюту по курсам? Вообще, интересно узнать, как у Вас построена система рейтингов.
Хорошее сравнение =)
Интересно, кто же пишет вирусы для живых существ?.. и кто наделил нас встроенным антивирусом?.. ) А можно переустановить систему? Сохраняются-ли наши персональные данные на контроллере домена?:)
Ну в общем — СПАСИБО!
Ждемс
ALTER FUNCTION [dbo].[n_geoCalculateDistance](@lat1 float,@lon1 float,@lat2 float,@lon2 float)
RETURNS real AS
BEGIN
declare @distance decimal(19,3)
declare @earthRadius int
set @earthRadius = 6371 --радиус земли в километрах
set @deltaLat = dbo.n_geoToRadian(@lat1 — @lat2)
set @deltaLon = dbo.n_geoToRadian(@lon1 — @lon2)
set @a =
sin(@deltaLat / 2) * sin(@deltaLat / 2) +
cos(dbo.n_geoToRadian(@lat1)) * cos(dbo.n_geoToRadian(@lat2)) * sin(@deltaLon / 2)
* sin(@deltaLon / 2)
set @c = 2 * atn2(sqrt(@a), sqrt(1 — @a))
set @d = @earthRadius * @c
return cast (@d as decimal(10,3)) — дистанция между двумя точками в километрах
END
например Ваш вариант.
select с.id, с.name,
[dbo].[n_geoCalculateDistance](с.lat, с.lon, @latMapCenter, @lonMapCenter) as distance
from cafe с where с.citid = @mySearchCity
order by distance desc
для тысяч объектов — приемлемо… а когда десятки тысяч?
Данная задача усложняется в разы, когда в БД много объектов, и много городов. Приведенная вами формула расчета верна только для города Ульяновск.
Более расширенный вариант:
Целесообразно использовать заранее индексированные данные и связанные данные, а не рассчитывать на лету.
К примеру для выборки ближайших городов с некими объектами, в неком сайте, уходит порядка 5-20 секунд в зависимости от количества объектов в городах участвующих в выборке. Использован такой же
подход, как и у Вас. Предстоит оптимизировать.
У кого есть соображения по оптимизации?
Столкнулся с проблемой. UrlRewritingNet не позволяет делать реврайт на директории. Работает только в том случае, если расширение ".aspx". Чтобы работало, надо прописать в настройках IIS, (Home Directory->Configurations->Mappings) Wildcard application maps, вот такой путь «c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll».
После такого «лечения», все заработало
зато гибкий и удобный…
Настраиваешь AMI, сохраняешь, и в любой момент можно поднять аналогичную машину с софтом и настройками. Думаю лучше чем виртуальный хостинг у провайдера, так хоть вся машина твоя. Что хочешь, то и ставь.
не согласен с Вами
cash.exchanger.ru
Интересно, кто же пишет вирусы для живых существ?.. и кто наделил нас встроенным антивирусом?.. ) А можно переустановить систему? Сохраняются-ли наши персональные данные на контроллере домена?:)
Ну в общем — СПАСИБО!
Ждемс
ALTER FUNCTION [dbo].[n_geoCalculateDistance](@lat1 float,@lon1 float,@lat2 float,@lon2 float)
RETURNS real AS
BEGIN
declare @distance decimal(19,3)
declare @earthRadius int
declare @deltaLat float
declare @deltaLon float
declare @a float
declare @c float
declare @d decimal(19,3)
set @earthRadius = 6371 --радиус земли в километрах
set @deltaLat = dbo.n_geoToRadian(@lat1 — @lat2)
set @deltaLon = dbo.n_geoToRadian(@lon1 — @lon2)
set @a =
sin(@deltaLat / 2) * sin(@deltaLat / 2) +
cos(dbo.n_geoToRadian(@lat1)) * cos(dbo.n_geoToRadian(@lat2)) * sin(@deltaLon / 2)
* sin(@deltaLon / 2)
set @c = 2 * atn2(sqrt(@a), sqrt(1 — @a))
set @d = @earthRadius * @c
return cast (@d as decimal(10,3)) — дистанция между двумя точками в километрах
END
например Ваш вариант.
select с.id, с.name,
[dbo].[n_geoCalculateDistance](с.lat, с.lon, @latMapCenter, @lonMapCenter) as distance
from cafe с where с.citid = @mySearchCity
order by distance desc
для тысяч объектов — приемлемо… а когда десятки тысяч?
Более расширенный вариант:
public static double CalculateDistanceLatLon(double lat1, double lon1,
double lat2, double lon2)
{
int R = 6371; // km earth radius
double dLat = ((lat2 — lat1) * 3.14 / 180);
double dLon = ((lon2 — lon1) * 3.14 / 180);
double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) +
Math.Cos(lat1 * 3.14 / 180) * Math.Cos(lat2 * 3.14 / 180) *
Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 — a));
return R * c;
}
public static double ToRad(this double value)
{
return value * Math.PI / 180;
}
Целесообразно использовать заранее индексированные данные и связанные данные, а не рассчитывать на лету.
К примеру для выборки ближайших городов с некими объектами, в неком сайте, уходит порядка 5-20 секунд в зависимости от количества объектов в городах участвующих в выборке. Использован такой же
подход, как и у Вас. Предстоит оптимизировать.
У кого есть соображения по оптимизации?
То, что Вы выбрали или указали в визуальном редакторе, в большинстве случаев будет отображено в разметке Asp.Net контрола
После такого «лечения», все заработало
Настраиваешь AMI, сохраняешь, и в любой момент можно поднять аналогичную машину с софтом и настройками. Думаю лучше чем виртуальный хостинг у провайдера, так хоть вся машина твоя. Что хочешь, то и ставь.