рдкрд╛рд░реНрд╕ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ (рд╕рдбрд╝рдХ [рдШрд░]) рдЧреЛрд▓рдВрдЧ рдФрд░ рдкреЛрд╕реНрдЯрдЧрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП

рд╣рд╛рдп,% рд╣рдмрд▓рд╕%ред

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

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

"рдкрд╛рд╡реЗрд▓ рдХреЛрд░реНрдЪрд╛рдЧрд┐рди рд╕реНрдЯреНрд░реАрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛," рдУрдмреНрд▓реЛрдорд┐рдВрдЧреЛ рдкрдХреНрд╖реА рдлреБрд╕рдлреБрд╕рд╛рдпрд╛

"рдЙрдо, рдареАрдХ рд╣реИ, рдШрд░ рдХрд╛ рдирдВрдмрд░ рд╢рд╛рдпрдж рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ," рд╕реНрдЯрд░реНрд▓рд┐рдВрдЧрд┐рдЯ рдиреЗ рдХрд╣рд╛ред

- рд╣рд╛рдБ, рдЗрдорд╛рд░рдд 1 - рдПрдХ рдЕрдЪреНрдЫреА рд╕рдВрдЦреНрдпрд╛

- рдУрд╣, рдЖрдкрдХреЛ рдкрд╣рд┐рдП рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛





рдФрд░ рд╢реНрдЯрд┐рд░рд┐рдЯреНрд╕ рдиреЗ рдЧреЛрд▓рдВрдЧ рдкреНрд▓рд╕ рдмрд▓ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ , рдФрд░ рдЗрд╕рдореЗрдВ рдкреЛрд╕реНрдЯрдЧрд┐рд╕ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ ...



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



const MARK_STEP = 20 func AnalyzeString(str string) (result int, street, house string) { result = 100 LastSpace := strings.LastIndex(str, " ") if LastSpace < 1 { result = 0 street = str return result, street, house } if LastSpace < (len([]rune(str)) - 6) { result -= MARK_STEP } else { result += MARK_STEP } street = str[:LastSpace] house = str[LastSpace+1:] if models.StreetCount(street) > 0 { result += MARK_STEP * 2 } else { result -= MARK_STEP * 2 } if models.StreetCount(str) > 0 { result -= MARK_STEP } else { result += MARK_STEP } if models.HouseCount(street, house) > 0 { result += MARK_STEP } else { result -= MARK_STEP * 4 } var int_count, char_count uint8 for _, run := range []rune(house) { if (run > 47) && (run < 58) { int_count++ } else { char_count++ } } switch { case char_count == 0: { result += MARK_STEP * 3 } case int_count == 0: { result -= MARK_STEP * 4 } case int_count == char_count: { result += MARK_STEP } case int_count > char_count: { result += MARK_STEP * 2 } case char_count > int_count: { result -= MARK_STEP } } return result, street, house }
      
      







рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?

рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдирдкреБрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдШрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдбрд╝рдХ, рдПрдХ рдЕрд▓рдЧ рд╕рдбрд╝рдХ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдШрд░ рд╣реИред

рдпрджрд┐ рд╕рдВрднрд╛рд╡рдирд╛ 200 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ - рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдВрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рдШрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдбрд╝рдХ рдХрд╛ рдзреНрдпрд╛рди рдерд╛ред



рдЖрдкрдиреЗ рд╢рд╛рдпрдж StreetCount (рд╕рдбрд╝рдХ) рдФрд░ HouseCount (рд╕рдбрд╝рдХ, рдШрд░) рдХреЗ рдХреЙрд▓реЛрдВ рдХреЛ рджреЗрдЦрд╛

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЙрдирдХреЗ рдкреАрдЫреЗ рджреЛ рд╕рд╛рдорд╛рдиреНрдп SQL рдХреНрд╡реЗрд░реА рд╣реИрдВ



 rows, err := DB.Query("SELECT COUNT(*) FROM planet_osm_line WHERE highway <> '' AND name ILIKE $1 ", "%"+name+"%")
      
      





рдФрд░

 rows, err := DB.Query("SELECT COUNT(house.*) FROM planet_osm_polygon AS house WHERE \"addr:street\" ILIKE $1 AND \"addr:housenumber\" ILIKE $2", "%"+streetName+"%", "%"+houseNum+"%")
      
      





рдХреНрд░рдорд╢:



рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЕрдм рдХреНрд░рдо рдореЗрдВ

рд╢реБрд░реБрдЖрддреА рд╕рдВрднрд╛рд╡рдирд╛ 100 рд╣реИ, рд╣рдо рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рд╛рдЗрди рдХреЛ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ), рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдирд░рдХ рдореЗрдВ рдпрд╣ рд╕рдм рдПрдХ рдШрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдбрд╝рдХ рдирд╣реАрдВ рд╣реИред

рдпрджрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдмрд╛рдж рдХрд┐рддрдиреЗ рд╡рд░реНрдг рдмрдЪреЗ рд╣реИрдВ, рдпрджрд┐ 6 рд╕реЗ рдХрдо (рдпрд╣ рд╕рдВрдЦреНрдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рдХрдИ рдЕрдиреНрдп рдХреЛ рдкреНрд░реЛрдлреЗрд╕рд░ рдЯрд╛рдЗрдХ рдиреАрдм рдлрд┐рдВрдЧрд░ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрдо рдХрд░реЗрдВред



рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рддрд░рд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдмрджрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреВрдбрд╝рд╛ рдЙрдард╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд░реЛрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд╣рдо рдЕрдкрдиреЗ рдорд╣рд╛рдХрд╛рд╡реНрдп рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рд╣рдо рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдЪрд╛рдЪрд╛ рдХрдЪрд░рд╛ рдЬрд╛рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред

рдЕрдВрддрд┐рдо рдЕрдВрддрд░рд╛рд▓ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдбрд╝рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж - рдПрдХ рдШрд░ред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо Postgis рд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рддрдиреА рд╕рдбрд╝рдХреЗрдВ рджрд┐рдЦрддреА рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реИ, рддреЛ рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝рд╛рдПрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдШрдЯреЗрдВ (рдирд╣реАрдВ, рд╣рдо рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдбрд╝рдХ рдЕрднреА рддрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИ)ред

рдЕрдм рд╣рдо рдЖрд░рдВрднрд┐рдХ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдбрд╝рдХ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдШреЛрдбрд╝реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рд╣рдо рд╕рд░рдкрдЯ рджреМрдбрд╝реЗрдВрдЧреЗред

рдПрдХ рд╣реА рдШрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рджреЛрд╣рд░рд╛рдПрдВ, рдкреЛрд╕реНрдЯрдЧрд┐рд╕ рд╕реЗ рдкреВрдЫреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╛рди рд╕рдбрд╝рдХреЛрдВ рдкрд░ рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реЗ рдШрд░ рд╣реИрдВред



рдЦреИрд░, рд╣рдореЗрдВ рдЕрдм рдЖрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдм рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд░реНрдгреЛрдВ рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ рдирдВрдмрд░ рд╣реИрдВ, рдФрд░ рдХрд┐рддрдиреЗ рдЕрдХреНрд╖рд░ рдФрд░ рдЕрдиреНрдп рд╡рд░реНрдг рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрд╡рд┐рдЪ-рдХреЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рдЗрд╕ рддрд░рд╣ рдХреЗ рдзреВрд░реНрдд рдордХрд░ рдХреЗ рд╕рд╛рде, рд╕реНрдЯрд░реНрд▓рд┐рдЯреНрдЬрд╝ рдиреЗ рд╢рд░реНрдд рдХреЗ рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛, рдУрдмреНрд▓реЛрдорд┐рдВрдЧреЛ рдкрдХреНрд╖реА рдХреЛ рд╣рд░рд╛рдпрд╛, рдбреНрд░реИрдЧрди рдХреЛ рд░рд╛рдЬрдХреБрдорд╛рд░реА рд╕реЗ рдмрдЪрд╛рдпрд╛,

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



All Articles