21 мая одноклассники планируют открыть API:
Odnoklassniki.ru API will be opened on May 21st
пятница, 14 мая 2010 г.
среда, 14 апреля 2010 г.
База данных адресов с географическими координатами
Имеется в наличии база данных по адресам г. Москвы с их привязкой к географическим координатам.
В базе 88557 объектов с определёнными координатами.
Пример из базы (10 случайных адресов):

Приобрести базу можно здесь
Как это можно использовать?
Можно написать процедуру, которая будет показывать объекты вблизи заданной точки (по адресу)
Или в районе, ограниченном окружностью
В базе 88557 объектов с определёнными координатами.
Пример из базы (10 случайных адресов):

Приобрести базу можно здесь
Как это можно использовать?
Можно написать процедуру, которая будет показывать объекты вблизи заданной точки (по адресу)
ALTER PROCEDURE [dbo].[GetNearestPoints]
@street nvarchar(150),
@home varchar(50),
@dist float
AS
BEGIN
SET NOCOUNT ON;
DECLARE @x float, @y float
DECLARE @dx float, @dy float
DECLARE @dx1km float, @dy1km float
SELECT @x=h.h_coordx, @y=h.h_coordy FROM houses h
INNER JOIN streets s ON h.h_streetid = s.s_id
AND s.s_name = @street
WHERE h.h_address = @home
SELECT @dx1km = 1/(108.307 * cos(@y*3.14159/180)), @dy1km = 1.0/111
SELECT @dx = @dist * @dx1km/2, @dy = @dist * @dy1km
SELECT s.s_name AS street,
h.h_address AS home,
h.h_coordx AS x,
h.h_coordy AS y
FROM houses h
INNER JOIN streets s ON s.s_id = h.h_streetid
WHERE h.h_coordx>=@x-@dx AND h.h_coordx<=@x+@dx
AND h.h_coordy>=@y-@dy AND h.h_coordy<=@y+@dy
ORDER BY s_name, h.h_coordx, h.h_coordy
END
Или в районе, ограниченном окружностью
ALTER PROCEDURE [dbo].[GetNearestPointsR]
@street varchar(150),
@home varchar(50),
@dist float
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #t (street varchar(50), home varchar(50), x float, y float)
DECLARE @x float, @y float, @phi float
DECLARE @xx float, @yy float
DECLARE @x2 float, @y2 float
DECLARE @dx float, @dy float
DECLARE @dx1km float, @dy1km float
SELECT @x=h.h_coordx, @y=h.h_coordy FROM houses h
INNER JOIN streets s ON h.h_streetid = s.s_id
AND s.s_name = @street
WHERE h.h_address = @home
SELECT @dx1km = 1/(108.307 * cos(@y*3.14159/180)), @dy1km = 1.0/111
SELECT @dx = @dist * @dx1km/2, @dy = @dist * @dy1km
DECLARE @counter int
SET @counter = 0
WHILE @counter < 3
BEGIN
SET @counter = @counter + 1
SELECT @phi = (@counter*45/2)*3.14/180
SELECT @xx = @dx*cos(@phi), @yy = @dy*sin(@phi)
INSERT INTO #t (street, home, x, y)
SELECT s.s_name, h.h_address, h.h_coordx, h.h_coordy FROM houses h
INNER JOIN streets s ON s.s_id = h.h_streetid
WHERE h.h_coordx>=@x-@xx AND h.h_coordx<=@x+@xx
AND h.h_coordy>=@y-@yy AND h.h_coordy<=@y+@yy
ORDER BY s_name, h.h_coordx, h.h_coordy
END
SELECT MAX(street) AS street, MAX(home) AS home, x, y FROM #t GROUP BY x, y ORDER BY x, y
DROP TABLE #T
END
Ярлыки:
адреса,
база,
база данных,
гео,
географические,
геокодер,
геокодинг,
координаты,
Москва,
geo,
geomap,
map
вторник, 16 марта 2010 г.
Использование утилиты LogParser
Для анализа производительности методов строим график с помощью логпарсера.
logparser "SELECT TO_INT(SUBSTR(Field9, ADD(INDEX_OF(Field9, ''), 8), SUB(SUB(INDEX_OF(Field9, ' '), INDEX_OF(Field9, '')),8))) as method, AVG(TO_REAL(SUBSTR(Field9, ADD(INDEX_OF(Field9, ''), 16), SUB(SUB(INDEX_OF(Field9, ' '), INDEX_OF(Field9, '')), 16)))) as duration INTO methods_avg.gif FROM c:\logs\vkontakte150310.csv WHERE Field9 LIKE '%%%%' GROUP BY method ORDER BY method" -i:csv -headerRow:off -o:chart -chartType:PieExploded3D -chartTitle:"Среднее время выполнения методов" -legend:on -values:on
logparser "SELECT TO_INT(SUBSTR(Field9, ADD(INDEX_OF(Field9, '
Подписаться на:
Сообщения (Atom)