рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдореЗрдВ OSM рдФрд░ рд╕реНрдкреАрдб рдмрдореНрдк рдореИрдк

рдЫрд╡рд┐ рдЪреВрдВрдХрд┐ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЕрдВрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред

рд╣рдордиреЗ рдХрд░ рджрд┐рдЦрд╛рдпрд╛ред рд╣рдореЗрдВ OpenStreetMap рдбреЗрдЯрд╛ рд╕реЗ рд╕реНрдкреАрдб рдмрдВрдк рдорд┐рд▓рд╛, рдЙрдиреНрд╣реЗрдВ рднрдпрд╛рдирдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╡рд┐рдЯреЗрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рд░ рдХрд┐рдпрд╛, рдЗрди рдЧрддрд┐ рдзрдХреНрдХреЛрдВ рдХрд╛ рдПрдХ рд╡реЗрдм рджрд░реНрд╢рдХ рдмрдирд╛рдпрд╛, рдФрд░ http://latlon.org/tc/ рдкрд░ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рднреА рд▓рд┐рдЦреА, рдЬрд┐рд╕рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдорд┐рддреНрд░реЛрдВ рдФрд░ рдкрд░рд┐рдЪрд┐рддреЛрдВ, рдореЛрдЯрд░ рдЪрд╛рд▓рдХреЛрдВ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╣рдмреНрд░ рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ: рдпрд╣ рд╕рдм рдЕрдВрджрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ред



OpenStreetMap рдХрд╛ рдореБрдЦреНрдп рдирд┐рдпрдо рдордЬрд╝реЗ рдХрд░рдирд╛ рд╣реИред рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рдкреИрд╕реЗ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрдкрдиреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рдорд┐рдиреНрд╕реНрдХ рдорд┐рдиреА-рдУрдПрд╕рдореЛрд╡рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ (рдорд┐рдиреА, рдХреНрдпреЛрдВрдХрд┐ рдХрд╣реАрдВ рднреА, рдЖрдИрдЖрд░рд╕реА рдЪреИрдирд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░ , рдЙрдиреНрд╣реЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдореБрдЭреЗ рдХрд╛рд░реНрдп рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: тАЬрдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдСрд╕реНрдореЛрд╕рд┐рд╕ рд╕реЗ рдирд╛рд╡рд┐рдХ рдореЗрдВ рд▓реЙрдЬрд░реНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред " рддрдм рд╕рдм рдХреБрдЫ рдХрд┐рд╕реА рддрд░рд╣ рднреВрд▓ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрднреА рднреА рдпрд╛рдж рд╣реИ, рдордВрдЪ w3bsit3-dns.com рд╕реЗ рдХреЙрдорд░реЗрдб stas_symba рдХреЗ рд╡реАрд░ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЕрдм рдХрдИ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдЕрдХреЗрд▓реЗ рдмреЗрд▓рд╛рд░реВрд╕ рдореЗрдВ рд╕реНрдкреАрдб рдмрдореНрдкреНрд╕ рдкрд░ рдЕрдкрдбреЗрдЯ рдЗрдХрдЯреНрдард╛ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░ рд░рд╣рд╛ рдерд╛ред "рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░, рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдУрдПрд╕рдПрдо рдореЗрдВ рддреБрд░рдВрдд рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ," рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдФрд░ рдореИрдВ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛ред



рдкреНрд░рд╛рд░реВрдк




рдЪреВрдБрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдирд╛рд╡рд┐рдХ, рдиреЗрд╡реАрдЯреЗрд▓ рдпрд╛ рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ, рдордВрдЪреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЗ рд╕рд╛рде рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдерд╛ред рдЖрдкрджрд╛ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП - рдордВрдЪреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВред



Cops.txt рдлрд╝рд╛рдЗрд▓ (рдФрд░ / рдпрд╛ speedcam.txt) рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣реЗрдбрд░ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдмрд╛рдж рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВред рд╢реАрд░реНрд╖рдХ:



idx,x,y,type,speed,dirtype,direction





рдЬрд╣рд╛рдВ:





рдЙрдкрдХрд░рдг рдЪрдпрди


рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдЖрдорддреМрд░ рдкрд░ рд╣рд╛рде рдореЗрдВ рдХреНрдпрд╛ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рде рдореЗрдВ рдУрдПрд╕рдПрдо рдПрдХреНрд╕рдПрдордПрд▓ , рдФрд░ рдкреЛрд╕реНрдЯрдЬреАрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдереЗред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╕реНрдЯреНрд░реАрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд╕реНрдкреАрдбрдХреИрдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рдХреНрд╖реЗрддреНрд░ рдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП PostGIS рдкреНрд░рд╕рд┐рджреНрдз рд╣реИред



Osm2pgsql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣реЛрдо рд╕рд░реНрд╡рд░ рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдкрдирд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЖрдзрд╛рд░ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдЬрд▓реНрджреА рдФрд░ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛:

select * from planet_osm_point where traffic_calming is not NULL;





рдЗрд╕рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, WKB рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЬреНрдпрд╛рдорд┐рддрд┐ рд╕рд╣рд┐рдд рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдореБрдЭреЗ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рд╣реЗрдХреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдерд╛ред рдЕрдЪреНрдЫрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред



рдореБрдЭреЗ PostGIS рдорд╛рд╣реЛрд▓ рдореЗрдВ рдЬрд╛рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдореЗрдВ ST_X рдФрд░ ST_Y рдлрд╝рдВрдХреНрд╢рди рдкрд╛рдП рдЧрдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдкреБрдирд░реНрд▓реЗрдЦрди:

gis=> select st_x(way), st_y(way) from planet_osm_point where traffic_calming is not NULL limit 1;

st_x | st_y

------------------+------------------

3085590.21426068 | 7159526.18035388

(1 )









рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ? рдЙрдореНрдореАрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рд╡реЗрдм рдореИрдкрд┐рдВрдЧ рдореЗрдВ, рджреЛ рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП - рдЕрдХреНрд╖рд╛рдВрд╢-рджреЗрд╢рд╛рдВрддрд░, рдпрд╣ EPSG: 4326 рдФрд░ "Google" рднреА рд╣реИ, рдпрд╣ "рд╕реНрдкреЗрдХреНрдЯрд░ рдкрд░ рд╡реНрдпрд╛рдкрд╛рд░реА" рднреА рд╣реИ, рдпрд╣ EPSG: 3857 рд╣реИ, рдпрд╣ EPSG: 900913, рднреА рд╣реИред рд╡рд╣ рдИрдкреАрдПрд╕рдЬреА: 3785 рд╣реИ (рдЗрддрдиреЗ рдХреЛрдб рдХреНрдпреЛрдВ рд╣реИрдВ? рдмрдбрд╝реЗ рдирд┐рдЧрдореЛрдВ, рд╢реМрдХрд┐рдпреЛрдВ рдФрд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд╡рд╛рджреЛрдВ рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рдЗрддрд┐рд╣рд╛рд╕, рдПрдХ рдЕрд▓рдЧ рдкрдж рдХреЗ рдпреЛрдЧреНрдп)ред рдпрд╣ рдкреНрд░рдХреНрд╖реЗрдкрдг рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕рд╕реЗ 4326 рддрдХ рд╕рдВрдХреНрд░рдордг рд╢рдХреНрддрд┐ рд╕реЗ рдЧрдгрд┐рдд рдХреА рджреЛ рд▓рд╛рдЗрдиреЗрдВ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рд╣реИ, рдореАрдЯреНрд░рд┐рдХ, рдФрд░ рдХреЛрдгреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдирд╣реАрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░реАрди рдкрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЧрдгрдирд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрд╕ рдореЗрдВ рд╣реИ рдХрд┐ рдореЗрдкрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред



рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИред Pereproetsiruemред

gis=> select ST_X(transform(p.way,94326)) as X, ST_Y(transform(p.way,94326)) as Y from planet_osm_point p where traffic_calming is not NULL limit 1;

x | y

------------+------------

27.7183285 | 53.9438334

(1 )








рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ? рд╕реНрдкреАрдбред



OSM рдореЗрдВ рдХреЛрдИ рднреА рд╕реНрдкреАрдб рдмрдВрдк рдкрд░ рдЧрддрд┐ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИред рд╣рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ (рдпрд╣ рд╡рд╛рдЗрд▓реНрдбрдореИрди рдирд┐рдХрд▓рд╛ ), рд╣рдореЗрдВ рдЬрд╡рд╛рдм рдорд┐рд▓рддрд╛ рд╣реИ - рдПрд╕рдбреАрдП рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╢рд╣рд░ рдореЗрдВ рдЕрдиреБрдордд рдЧрддрд┐ 60 рд╣реИ, рд╢рд╣рд░ рдХреЗ рдмрд╛рд╣рд░ 90 рд╣реИред рдФрд░ рд╕рдбрд╝рдХ рдкрд░ рднреА рдПрдХ рдЧрддрд┐ рд╕реАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯреИрдЧ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдореИрдХреНрд╕рд╕реНрдкреАрдбред рдареАрдХ рд╣реИ, рдЙрд╕реА рд╕рдордп, рдЖрдкрдХреЛ рд╡рдирд╡реЗ рдЯреИрдЧ рд╕реЗ рдПрдХрддрд░рдлрд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ - рд╡реНрдпрд░реНрде рдореЗрдВ, рд╢рд╛рдпрдж, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ?



рдмрд╣реБрднреБрдЬ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХрд░реЗрдВ - рдпрд╣ рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ - рдпрд╣ рд╕рдбрд╝рдХреЛрдВ рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред



select ST_X(transform(p.way,94326)) as X,

ST_Y(transform(p.way,94326)) as Y, '102' as TYPE,

case when l.maxspeed is not NULL then l.maxspeed else case when t.admin_level = '8' then '60' else '90' end end as SPEED,

case when l.oneway = 'yes' then '1' else '2' end as DirType



from (planet_osm_point p

join planet_osm_line l on (l.highway is not NULL and ST_DWithin(p.way,l.way,.1)))

LEFT OUTER JOIN planet_osm_polygon t on (t.admin_level = '8' and ST_Within(p.way, t.way))

where p.traffic_calming is not NULL;









рдорд╛рдирдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдЬреЙрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕рднреА рддреАрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреАрдб рдмрдореНрдк рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдо рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдпреБрдЧрд▓ рд╕рдбрд╝рдХ рд╕реЗ рджрд╕ рд╕реЗрдВрдЯреАрдореАрдЯрд░ рд╕реЗ рдЖрдЧреЗ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЙрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рд╢рд╣рд░ рдХреЗ рдмрд╣реБрднреБрдЬред рдЕрдЧрд▓рд╛, рд╣рдо рд▓рд╛рдЗрди рдХреЗ рдЕрдзрд┐рдХрддрдо рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐ рдХреНрд╖реЗрддреНрд░ рдХреЛ рднрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рднрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдбреЙрдЯ рд╢рд╣рд░ рдХреА рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ: рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЗрд╕реЗ 60 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, рдпрджрд┐ рдирд╣реАрдВ рддреЛ - 90ред



idx - рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ - рдпрд╣ osm_id рд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд▓реЛрднрди рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдкреБрд▓рд┐рд╕рдХрд░реНрдореА, рдЬреЛ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЬрдВрдХреНрд╢рди рдкрд░ рд╣реИ, рджреЛрдиреЛрдВ рддрд░рдл рджреЛрдиреЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗ, рдФрд░ рдЬрд┐рд╕ рдЖрдИрдбреА рдХреЛ рд╡рд╣ рдПрдХ рдЕрд▓рдЧ рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдкреНрд░рддреАрдд рд╣реЛ рд░рд╣рд╛ рдерд╛ред



рдбрд░ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА




рдЪреВрдВрдХрд┐ рдиреЗрд╡реАрдЯреЗрд▓ рдПрдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рдж рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рди рддреЛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ рдФрд░ рди рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг, рдЕрдВрддрд┐рдо рдЖрдВрдХрдбрд╝рд╛ - рджрд┐рд╢рд╛, рдмрд┐рдирд╛ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рдЧреНрд░реА рдореЗрдВ рдПрдХ рдЖрдВрдХрдбрд╝рд╛ рд╣реИред

"рдареАрдХ рд╣реИ, рдЪреВрдВрдХрд┐ рд╕рднреА рдХрд╛рд░реНрдб рдорд░реНрдХреЗрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрд╢рди рдореЗрдВ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреЛрдг рдФрд░ рджрд┐рд╢рд╛рдУрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ , рддреЛ рд╡реЗ рдЗрд╕рдореЗрдВ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ!"



рдЕрдЬреАрдорде рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PostGIS рдХреЛ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рд╕рдбрд╝рдХ рдкрд░ рдЭреВрда рдмреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕ рдкрд░ рд╕реНрдкреАрдб рдмрдВрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдХреЗ рджреЛрдиреЛрдВ рддрд░рдл рдХреБрдЫ рджреВрд░реА рдкрд░ред

ST_Line_Locate_Point рд╡рд┐рдзрд┐ рдиреЗ рд░реЗрдЦрд╛ рдХреЛ рд▓рдВрдмрд╛рдИ рдХреЛ рдЙрд╕рдХреЗ рдЖрд░рдВрдн рд╕реЗ рдмрд┐рдВрджреБ рддрдХ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдФрд░ ST_Line_Interpolate_Point - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд┐рдВрджреБ рдХреЛ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рд▓рдВрдмрд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗред



рдЬрдм рд╕реАрдПрд╕рд╡реА рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ рддреЛ рдореЗрд░реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕рд╛рдЗрдХрд▓ рдПрдХ рдЫрджреНрдо рд╡рд┐рдЬреНрдЮрд╛рди рдХреА рдЧреЛрд▓реА рдЦреАрдВрдЪрддрд╛ рд╣реИ! рдХреНрдпрд╛ рд░реИрдкрд░ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ?

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред COPY рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ CSV рдХреЛ рддреБрд░рдВрдд рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдмрд╕ рдЖрдкрдХреЛ рдЬреЛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рдмрд┐рд▓реНрд▓реА рдЦреБрд╢реА рд╣реИред



рдореИрдВ рдкрд╣рд▓рд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдХрд╛рд▓рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╡рд┐рддреЗрд▓ рдХрд╛ рдорд╛рд▓рд┐рдХ рдорд┐рд▓рддрд╛ рд╣реИ, рдореИрдВ рдЙрд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реВрдВ ... рдФрд░ рдЙрдлред рджрд┐рд╢рд╛рдПрдВ рд╕рдбрд╝рдХреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рд╣реИрдВред рд╕реЛрдЪрд╛ "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ..." рдЙрдарддрд╛ рд╣реИ, рдФрд░ рдкрдВрдЬреЗ рдЦреБрдж рдХреЛ рдЕрдЬрд╝реАрдорде рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╕рдордп 4326 рдореЗрдВ рдкреБрди: рдкреНрд░рдХреНрд╖реЗрдкрдг рд▓рд┐рдЦрддреЗ рд╣реИрдВред



рд╣рд╛рдВ, рдмрд╣рд╛рджреБрд░ рдирд╡рд┐рдЯреЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдореЗрдВ рджрд┐рд╢рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рджрд┐рд╢рд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХрд╛ рд╕рдореНрдорд╛рди, рдкреНрд░рд╢рдВрд╕рд╛ рдФрд░ рд╕рдореНрдорд╛рдиред



Kvaziitog




рдирддреАрдЬрддрди, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╕рд┐рд░реНрдл рдПрдХ рдРрд╕рд╛ рд░рд╛рдХреНрд╖рд╕ рдерд╛, рдЬреЛ OpenStreetMap рдбреЗрдЯрд╛ рд╕реЗ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╢реБрд░реВ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ - рдирд╡рд┐рдЯреЗрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЧрддрд┐ рдзрдХреНрдХреЛрдВред рдЖрдк рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирд╕реЗ рд╕реНрдкреАрдб рдХреИрдорд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред :)

CREATE TEMP SEQUENCE idx ;

COPY (



select nextval('idx') as idx,

ST_X(transform(p.way,94326)) as X,

ST_Y(transform(p.way,94326)) as Y, '102' as TYPE,

case when l.maxspeed is not NULL then l.maxspeed else case when t.admin_level = '8' then '60' else '90' end end as SPEED,

case when l.oneway = 'yes' then '1' else '2' end as DirType,

floor(ST_Azimuth(

transform(ST_Line_Interpolate_Point(l.way,

case when (ST_Line_Locate_Point(l.way,p.way)-0.01 < 0) then 0 else ST_Line_Locate_Point(l.way,p.way)-0.0000001 end),94326),

transform(ST_Line_Interpolate_Point(l.way,

case when (ST_Line_Locate_Point(l.way,p.way)+0.01 > 1) then 1 else ST_Line_Locate_Point(l.way,p.way)+0.0000001 end)

,94326))/(2*pi())*360) as Direction

from (planet_osm_point p

join planet_osm_line l on (l.highway is not NULL and ST_DWithin(p.way,l.way,.1)))

LEFT OUTER JOIN planet_osm_polygon t on (t.admin_level = '8' and ST_Within(p.way, t.way))

where p.traffic_calming is not NULL

) TO STDOUT WITH CSV HEADER;









рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдирдХреА рдмрд┐рд▓реНрд▓реА рдХреЗ рдХрд╛рди рд╣рд░ рдЬрдЧрд╣ рд╕реЗ рдирд╣реАрдВ рдирд┐рдХрд▓рддреЗ рддреЛ рдХреЛрдЯрд┐рдпрд╛рд░рд╛ рдХреЛрдЯрд┐рдпрд╛рд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдЗрд╕рд▓рд┐рдП, рд╕реАрдЖрдИрдПрд╕ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдЧрддрд┐ рдзрдХреНрдХреЛрдВ рдФрд░ рдХреИрдорд░реЛрдВ рдХреЗ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдЙрддрд╛рд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд╛рдЗрд▓реНрд╕ рдореЗрдВ рдЗрд╕ рд╕рднреА рдЕрдкрдорд╛рди рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрд╛рдХрд┐ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдиреЗрд╡реАрдЯреЗрд▓ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд╡реЗ рд╡рд╛рд░реНрдо-рдЕрдк рдХрд╛ рдЖрдпреЛрдЬрди рдХрд░ рд╕рдХреЗрдВред



рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдХреЗ рдХрд░реАрдм, рдХреЙрдорд░реЗрдб рдПрдВрдбреНрд░реАрд╢ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдпрд╣ рднреА рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрдирд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ :) рдиреЗ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдирдИ рдЧрддрд┐ рдХреЗ рдзрдХреНрдХреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрд╛ рдерд╛ - latlon.org/tc , рдФрд░ рдпрд╣ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬрдирддрд╛ рдкрд░ рдбрд╛рд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред



рдордЬрд╛ рдЖ рдЧрдпрд╛! ;)



All Articles