
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдЯрд╛рдЗрдо рдЬрд╝реЛрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреБрдЫ рдХреЛ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреИрд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХрд┐рд╕ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред
рдпреВрдЬрд░ рдХреЛ рдЕрдЪреНрдЫрд╛ рдХреИрд╕реЗ рдмрдирд╛рдпреЗ?
рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛:
рдЕрд░реНрдерд╛рддреН,
- Google рдорд╛рдирдЪрд┐рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдЦреЛрдЬреЗрдВ (Geonames.org)ред
- рд╢рд╣рд░ рдХреЗ рдирд╛рдо (Geonames.org) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред
- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЗрд▓рд╛рдХреЗ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░,
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ:
- рдпрд╣ рд╕реЛрдЪрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред
- рдереЛрдбрд╝рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдмрд╕ рдлрд╝реЛрди рд╕рд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рд╢рд╣рд░ рдХреЗ рдирд╛рдо рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
- рдпрджрд┐ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдЯреАрдХ рдкрддреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
рдЬрд▓реНрджрдмрд╛рдЬреА рдХреЗ рд▓рд┐рдП: рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЬрд╛рдиреЗ рдХреЗ
рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд░
рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред
рдмрд╛рдХреА рдХреЗ рд▓рд┐рдПред рдЗрд╕реЗ рдХреНрд░рдо рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред
рдкрд░рд┐рдЪрдп
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЯрд╛рдЗрдо рдЬрд╝реЛрди (рдЯрд╛рдЗрдо рдЬрд╝реЛрди) рдХреНрдпрд╛ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдм Wikipedia.org рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВредрдЧреНрд▓реЛрдм рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рджреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ - рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдПрдХ рдЬрд╛рдирд╛-рдорд╛рдирд╛ рддрдереНрдп рд╣реИред рд▓реЗрдХрд┐рди рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкрдХрдбрд╝ рд╣реИ: рдкреГрдереНрд╡реА рдкрд░ рдХрд╣реАрдВ рднреА рдХрд┐рд╕реА рднреА рд╕рдордп рдХреНрд╖реЗрддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдПрдХ рджрд┐рдП рдЧрдП рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдмрдВрдзрдХ рдХреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЕрдм рдпреВрд░реЛрдкреАрдп рд░реВрд╕ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреЛрдкрд╣рд░, рдЬрд┐рд╕реЗ 12:00 рдмрдЬреЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓рдЧрднрдЧ 2 рдШрдВрдЯреЗ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рджреЛрдкрд╣рд░ рдореЗрдВ, рдорд╛рд╕реНрдХреЛ рдореЗрдВ рдЕрдкрдиреЗ рдЪрд░рдо рдкрд░ рд╕реВрд░реНрдп - рджреЛрдкрд╣рд░ рдХрд╛ рд╕рдордп 13:38 рдкрд░ рдерд╛ред рд░реВрд╕ рдХреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ, рд╕реВрд░реНрдп рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрд╕рдХреЗ рдЖрдВрдЪрд▓ рдореЗрдВ 3 рдШрдВрдЯреЗ рддрдХ рдПрдХ рд╢рд┐рдлреНрдЯ рдорд┐рд▓рддреА рд╣реИред
рдЪрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рд╡рд┐рд╢реНрд╡ рд╕рд░рдХрд╛рд░ рдиреЗ рд╕рдореБрджрд╛рдп рдХреЛ рдкреНрд░рдореБрдЦ рдордзреНрдпрд╛рд╣реНрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ - рдЧреНрд░реАрдирд╡рд┐рдЪред рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдЗрд╕рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдЧреНрд░реАрдирд╡рд┐рдЪ рдореЗрд░рд┐рдбрд┐рдпрди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЧреНрд░рд╣ рдкрд░ рдХрд┐рд╕реА рд╕рдордп рд╕реНрдерд╛рдиреАрдп рд╕рдордп рдХреА рдкрд╛рд░реА рд╣реИред рд╕рдВрдкреВрд░реНрдг рдЧреНрд▓реЛрдм рдХреЛ 24 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдореВрд▓ рдореЗрд░рд┐рдбрд┐рдпрди 0 ┬░, 15 ┬░, 30 ┬░, рдЖрджрд┐ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ count 7.5 ┬░ рдЙрдирд╕реЗ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, +00: 00 рд╕рдордп рдХреНрд╖реЗрддреНрд░ - рдФрд░ рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░реВрдк рд╕реЗ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рджреЛрдиреЛрдВ рдпреВрдЯреАрд╕реА, рдФрд░ рдЬреАрдПрдордЯреА, рдФрд░ рдЬреАрдПрдордЯреА + 00: 00 (рдпреВрдЯреАрд╕реА рдФрд░ рдЬреАрдПрдордЯреА рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ) - рд╕реЗ рд╣реИ 7.5 ┬░ W рд╕реЗ 7.5 ┬░ E, GMT + 01: 00 - 7.5 ┬░ E рд╕реЗ 22.5 ┬░ рдкреВрд░реНрд╡ рддрдХ рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд▓реЗрдХрд┐рди, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд╛рдЬреНрдп рдХреА рд╕реАрдорд╛рдПрдВ рднреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХреБрдЫ рд░рд╛рдЬреНрдп рддрдерд╛рдХрдерд┐рдд рдордзреНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ +01: 00 (рдЖрдорддреМрд░ рдкрд░) рджреНрд╡рд╛рд░рд╛ рд╢рд┐рдлреНрдЯ рдХрд░рдирд╛ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рд╣реИред рджрдХреНрд╖рд┐рдгреА рдЧреЛрд▓рд╛рд░реНрдз рдореЗрдВ, рдЧрд░реНрдорд┐рдпреЛрдВ рдХреА рдкрд╛рд░реА рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рд░реНрджреА рдЙрддреНрддрд░реА рдЧреЛрд▓рд╛рд░реНрдз рдореЗрдВ рд╣реЛрддреА рд╣реИред рд░реВрд╕ рдореЗрдВ рдорд╛рддреГрддреНрд╡ рд╕рдордп рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдШрдбрд╝реА рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдореБрджреНрд░ рдФрд░ рдорд╣рд╛рд╕рд╛рдЧрд░реЛрдВ рдкрд░, рдПрдХ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдФрд░ рдЕрдВрдЯрд╛рд░реНрдХрдЯрд┐рдХрд╛ рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред рдЗрди рд╕рднреА рд╕рд╛рдорд╛рдЬрд┐рдХ-рдЖрд░реНрдерд┐рдХ рдФрд░ рд░рд╛рдЬрдиреАрддрд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЧреНрд░рд╣ рдкрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрдИ рд╕реМ рдЬрдорд╛ рд╣реБрдП рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдордп (рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрди рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реИрд╕реЗ, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ Java
рдореЗрдВ Calendar
рдХреНрд▓рд╛рд╕ рдПрдХ рдШрдВрдЯреЗ рдХреА рд╢рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рд╕рдордп рдФрд░ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕рдордп рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрд▓рд╛рдЗрдЯ рд╕реЗрд╡рд┐рдВрдЧ рдЯрд╛рдЗрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1988, рдХреИрд▓реЗрдВрдбрд░ 1 рдШрдВрдЯреЗ рдХреА рд╢рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдШрдбрд╝реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рдирдП рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреИрд▓реЗрдВрдбрд░ рдХреЛ рдкреБрди: рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SimpleDateFormat
рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреБрд░рд╛рдиреА рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛ред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рд▓реЗрдЦ "рд╕рдордп рдХреНрд╖реЗрддреНрд░" рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВGeonames.org рдПрдХ рдмреЗрд╣рддрд░реАрди рд╕рдВрд╕рд╛рдзрди рд╣реИред рд╡рд╣рд╛рдВ рдЖрдк рдпрд╛ рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕рд┐рд░реНрдл рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рдЬрд┐рдпреЛрдирд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдФрд░
рдЗрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рднреА
рди рднреВрд▓реЗрдВ ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░
рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ :
рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
рдпрд╣рд╛рдБ рдкреНрд░рд▓реЗрдЦрди рд╣реИрдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рд╣реИ , рд▓реЗрдХрд┐рди рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХрднреА-рдХрднреА рд╣реЛрддреА рд╣реИрдВред Http рдЕрдиреБрд░реЛрдз рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ API рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рд▓рд╛рдЗрд╕реЗрдВрд╕ ред рдЖрдк рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Google рдореИрдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВред
рдЖрдк
рдпрд╣рд╛рдБ Google рдорд╛рдирдЪрд┐рддреНрд░
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕рд╣рд╛рдпрддрд╛
рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЗрд╕рдореЗрдВ рднреА рдЬрд┐рдпреЛрдХреЛрдбрд░ рдХреА рддрд░рд╣ рдПрдХ рдЪрд┐рдк рд╣реИред рдЖрдк рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдордп рдХреНрд╖реЗрддреНрд░, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реИрдВред
рдореИрдВ рдХреНрд▓рд┐рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
Geonames.org рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░реВрдВрдЧрд╛ ред
Google рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯ рдХрд░рдирд╛
рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрд╛рджрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
AndroidManifest.xml
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╣реИ, рдореБрдЭреЗ Google рдореИрдкреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдлреЛрди рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ -
рдЖрд╡реЗрджрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
1ред
рдЕрдВрджрд░
<manifest>
:
<permission android:name="com.example.android.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
2ред
рдЕрдВрджрд░
<application>
:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/>
Android рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП: value = "API_KEY" (
рд▓рд┐рдВрдХ рдЬрд╣рд╛рдВ рдпрд╣ рдХреЛрдб рдореЗрдВ рд╣реИ ), рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
- рдпрд╣рд╛рдВ
APIs & auth > Credentials > Create new KEY > Android key
- рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд SHA-1-KEY рд▓рд┐рдЦреЗрдВ; com.example.android.mapexample
Android рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░: value = "API_KEY"
рдЪрд┐рддреНрд░ 1: рдХрдВрд╕реЛрд▓ рдЦреЛрд▓реЗрдВ рдЪрд┐рддреНрд░ 2: рдХреБрдВрдЬреА рджрд░реНрдЬ рдХрд░реЗрдВ рдЪрд┐рддреНрд░ 3: API_KEY рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ SHA-1-KEY рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
- рдпрд╣ рдпрд╛ рддреЛ рдбрд┐рдмрдЧ рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред
- рдбрд┐рдмрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд╝рд╛рдЗрд▓ -% USERPROFILE% \ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ред android \ debug.keystoreред рдпрд╣ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдЧреНрд░рд╣рдг рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
- рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд╝рд╛рдЗрд▓ my-release-key.keystore рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: developer.android.com/tools/publishing/app-signing.html#cert
- рдбрд┐рдмрдЧ-рдХреА рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдкреНрд░рд▓реЗрдЦрди рдЦреЛрд▓реЗрдВ , рдФрд░ рд╡рд╣рд╛рдВ рдбрд┐рдмрдЧ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ
- рд░рд┐рд▓реАрдЬрд╝-рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрдиреБрднрд╛рдЧ рд╣реИ
- рдПрдкреА-рдХрдВрд╕реЛрд▓ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдХрдИ SHA-1-KEY рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдПрдХ рдЖрдЙрдЯрдкреБрдЯ API_KEY рдХреЗ рд▓рд┐рдП com.example.android.mapexampleред рдХрдИ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред
Google рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Android рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝реЗрдВред рдкрде рд╣реИ:
<Android-SDK-Path>\extras\google\google_play_services\
ред рдЖрдкрдХреЛ рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
File>New>Project>Android>Android Prject from Existing Code>Next
рдореБрдЦреНрдп
habrtimezone
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ
google_play_services
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВред рдпрд╣ рдЕрдиреБрднрд╛рдЧ
Project>Properties>Android>Library>Add...
рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
Project>Properties>Android>Library>Add...
рдЖрдкрдХреЛ Google API рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 4.4.2 (рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ> 4.0)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
Project>Properties>Android>Project Build Target
рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред рдпрджрд┐ рд╡рд╣рд╛рдВ рдРрд╕реА рдХреЛрдИ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Google рдПрдкреАрдЖрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдХ рддрд╕реНрд╡реАрд░ рдЬреЛ рджрд┐рдЦрд╛рддреА рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рдФрд░ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдореИрдиреЗрдЬрд░ рдореЗрдВ рдХреНрдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реИред рдЖрд╡реЗрджрди рдХреЛрдб
рдиреАрдЪреЗ Google Play рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ , рд╕реЛрд░реНрд╕ рдХреЛрдб
GitHub рдкрд░
рд╣реИ ред
рдЖрд╡реЗрджрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рджреА рдЬрд╛рдПрдВрдЧреАред
рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЖрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдЧреНрд░рд╣рдг рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред рддреЛ рдЖрд╡реЗрджрди рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
1. рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
2. рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
3. рд╢рд╣рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЙрд╕рдХреЗ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдореБрдЦреНрдп рд╡рд┐рд╡рд░рдг рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЫреЛрдЯреА рдЪреАрдЬрд╝реЛрдВ рд╡рд╛рд▓рд╛
рдПрдХ рдХреЛрдб рд╣реИ , рддреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдХрдХреНрд╖рд╛ AMainред рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди
рдЖрд╡реЗрджрди
AMain
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
рдХрдХреНрд╖рд╛
AMain.java
ред
рдХрдХреНрд╖рд╛ рдХреЛрдб ред
public class AMain extends Activity implements OnClickListener
(
рд▓рд┐рдВрдХ )
OnClickListener - рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреНрд▓рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдПред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреНрд▓рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрджрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
button.setOnClickListener(this);
рд▓реЗрдХрд┐рди рдирд╣реАрдВ
button.setOnClickListener(< Listener>);
рдпрд╣ рдкреНрд░рднрд╛рд╡ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдЬрдм рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
(
рдмрдЯрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдФрд░
рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ )
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:
рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдлреЛрди рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдЬреАрдПрд╕рдПрдо рдЯрд╛рд╡рд░реЛрдВ, рд╕рд╛рде рд╣реА рдЬреАрдкреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред
рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
1. рдХрд╛рд░реНрдбред рдЗрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдлреЛрди рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕реНрдерд┐рддрд┐ (рдЕрдХреНрд╖рд╛рдВрд╢ / рджреЗрд╢рд╛рдВрддрд░), рдЬреЛ
AGMap
рдкрд╛рда рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЧрдИ рд╣реИ,
AGMap
рдЬрд╛рдПрдЧреА
2. рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд╣рд░реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВред
ACityListOnline
рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЦреЛрдЬ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрдЦреНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЧрдИ рдереА:
private LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); private LocationListener gpsLocationListener; private LocationListener networkLocationListener;
(
рд▓рд┐рдВрдХ )
рдЬреИрд╕реЗ рд╣реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ / рдпрд╛ рд╕рдордп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ, рдИрд╡реЗрдВрдЯ рдХреЛ
LocListener implements LocationListener
рдХреЗ
LocListener implements LocationListener
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
@Override public void onLocationChanged(Location location) {}
(
рд▓рд┐рдВрдХ )
рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдХрдХреНрд╖рд╛ AGMapред рдирдХреНрд╢рд╛ рд╕реНрдХреНрд░реАрди
рдЖрд╡реЗрджрди рдореЗрдВ рдХрд╛рд░реНрдб рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
agmap.xml
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
рд▓рд┐рдВрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмреНрд▓реЙрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (
рд▓рд┐рдВрдХ :
<fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/>
, рдЬреЛ рдПрдХ рдирдХреНрд╢рд╛ рд╣реИ (
рд▓рд┐рдВрдХ )
рдХрдХреНрд╖рд╛ рдЧрддрд┐рд╡рд┐рдзрд┐:
AGMap.java
рдХрдХреНрд╖рд╛ рдХреЛрдб ред
рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
1. рдХрд╛рд░реНрдб рдЦреБрд▓рддрд╛ рд╣реИ,
2. рдкрд┐рдЫрд▓реА рд╕реНрдХреНрд░реАрди рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
3. 2 рдорд╛рд░реНрдХрд░ рд╣реИрдВ - рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ, рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдПрдХ рдорд╛рд░реНрдХрд░ред
4. рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдЖрдк рд╕рд╣реЗрдЬреЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╕рдордп рдХреНрд╖реЗрддреНрд░ Geonames.org рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред
public class AGMap extends FragmentActivity implements OnCameraChangeListener, OnClickListener
(
рд▓рд┐рдВрдХ )
FragmentActivity
- рдЪреВрдВрдХрд┐ рдирдХреНрд╢рд╛ рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
OnCameraChangeListener
- рдирдХреНрд╢рд╛ рдЖрдВрджреЛрд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
private GoogleMap mMap;
рдЬреЛ рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
(
рд▓рд┐рдВрдХ )
рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ (рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рд╕рдВрдХреЗрдд) рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ
LatLng HEREIAM = null;
(
рд▓рд┐рдВрдХ )
рдХрд┐рд╕реА рдорд╛рд░реНрдХрд░ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдорд╛рд░реНрдХрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
mo = new markerOptions(...
(
рд▓рд┐рдВрдХ )
рдФрд░ рдЗрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
mar = mMap.addMarker(mo);
рдЙрддреНрдкрд╛рджрди
Marker mar
(
рд▓рд┐рдВрдХ ) рд╣реИ
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЬрдм рдХрд╛рд░реНрдб рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ
onCreate()
рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реЛрдЧрд╛
try{}catch(NullPointerException e){}
(
рд▓рд┐рдВрдХ )
рд╕рднреА рдорд╛рдирдЪрд┐рддреНрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ
GoogleMapOptions options = new GoogleMapOptions();
(
рд▓рд┐рдВрдХ )
рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛:
@Override public void onCameraChange(CameraPosition cp) {
(
рд▓рд┐рдВрдХ )
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗред
uniqueExec();
рд▓реЗрдХрд┐рди рдЦрд░рд╛рдм рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрдпреЛрдЧ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рд╕реНрдерд┐рддрд┐ рдирд╛рдо рдХреА рдЦреЛрдЬ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); try { List<Address> addresses = geoCoder.getFromLocation(point.latitude, point.longitude, 1);
(
рд▓рд┐рдВрдХ )
рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА "рд╕реЗрд╡рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ" рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рдкрддреНрд░ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреВрд░рдХ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ
if (Geocoder.isPresent()){} else{}
рдФрд░
URL
рд╕реАрдзрд╛ рдЕрдиреБрд░реЛрдз
URL
:
String googleMapUrl = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" + point.latitude + "," + point.longitude + "&sensor=false&language=" + Locale.getDefault().getLanguage();
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ
рдпрд╣рд╛рдВ if-else
рд╕реНрдерд┐рддрд┐
рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред
рдЖрдЙрдЯрдкреБрдЯ рдПрдХ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рднреА рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ GeoNames рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред (
рдереЛрдбрд╝рд╛ рд╕рд╛ рджреЗрдЦреЗрдВ )ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рдореБрдлреНрдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐ рджрд┐рди 2500 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕реАрдорд╛ рд╣реИред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБрдЬрдм рдЖрдк рд╕рд╣реЗрдЬреЗрдВ рдмрдЯрди (
рд▓рд┐рдВрдХ ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╣реЛрддрд╛ рд╣реИ:
1. рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВред
geocodertask extends AsyncTask<Void, Integer, Void>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
geocodertask extends AsyncTask<Void, Integer, Void>
(
link ) рдХреЛ рдЕрджреНрд╡рд┐рддреАрдп
uniqueExec();
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ
uniqueExec();
рдХрд░рддрд╛ рд╣реИ
uniqueExec();
(
рд▓рд┐рдВрдХ )
2. рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВред
TimeZoneTask extends AsyncTask<Double, Integer, Void>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
uniqueExecTZ(pos);
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ
TimeZoneTask extends AsyncTask<Double, Integer, Void>
(
рд▓рд┐рдВрдХ ) рдХрд╛
uniqueExecTZ(pos);
рд╣реЛрддрд╛ рд╣реИ
uniqueExecTZ(pos);
(
рд▓рд┐рдВрдХ )
AsyncTask
рдФрд░
Time Zone
рд▓рд┐рдП http рдЕрдиреБрд░реЛрдз
AsyncTask
(
рд▓рд┐рдВрдХ 1 рдФрд░
рд▓рд┐рдВрдХ 2 ) рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реБрдП
Time Zone
, рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдзрд╛рд░рд╛ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдФрд░ рдпрд╣ рд▓реЗрдЦ рдЬрд┐рдпреЛрдирд╛рдореЗрд╕.рдУрдЖрд░рдЬреА рдкрд░ рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВред рдпрд╣рд╛рдБ рдкрд╣рд▓реЗ рд╡рд╛рд▓рд╛ рд╣реИред
String[] urlString = {"http://api.geonames.org/findNearbyJSON?lat=","&lng=", "&radius=50&username=","&style=full&maxRows=1"}; outURL = urlString[0] + f.format(lat).replace(",", ".") + urlString[1] + f.format(lon).replace(",", ".") + urlString[2] + _.names1[r.nextInt(_.names1.length)] + urlString[3];
(
рд▓рд┐рдВрдХ 1 )
(
рд▓рд┐рдВрдХ 2 )
рдХреНрд╡реЗрд░реА 50 рдХрд┐рдореА рд╕реЗ рдЕрдзрд┐рдХ рджреВрд░реА рдкрд░ рдХрд┐рд╕реА рднреА рдПрдХ рд╡рд╕реНрддреБ рдХреА рдЦреЛрдЬ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рд╣реИ, рддреЛ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рдпрд╛ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╣рд╛рд╕рд╛рдЧрд░ рдореЗрдВ рдХрд╣реАрдВ рд╕реНрдерд╛рди), рддреЛ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рд╡рд░реНрддрдорд╛рди рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдХреЗ рд╕рд╛рде рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧ рдореЗрдВ 24 рднрд╛рдЧреЛрдВ (
рд▓рд┐рдВрдХ ) рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред рд╢рд╛рдпрдж рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдХрдЯрддрдо рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдирд╣реАрдВ рджреЗрдЦрд╛ред
рдкрд░рд┐рдгрд╛рдо JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рдЖрдк рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирд╛рдо 1 рд╕рд░рдгреА (
рд▓рд┐рдВрдХ )
_.java
рд╡рд░реНрдЧ рд╕реЗ
_.java
рдкрд░ рд▓реЙрдЧрд┐рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдПрдХ рд▓реЙрдЧрд┐рди рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдмреЗрд╣рддрд░ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдПрдХ рд╕реАрдорд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЪреБрдирдирд╛, рдРрд╕реЗ рдХреГрддреНрд░рд┐рдо рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЖрдиреБрдкрд╛рддрд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ, r.nextInt () (
r рдХреНрдпрд╛ рд╣реИ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд▓рд╛рдЗрд╕реЗрдВрд╕ рдореЗрдВ, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдореИрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛
рдзреНрдпрд╛рди рджреЗрдВ ,
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ
рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдкрд░
рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ :
рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
рдмреЗрд╢рдХ, рд╡рд┐рдзрд┐ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдЯреАрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЕрднреА рддрдХ рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред
рдХрдХреНрд╖рд╛ ACLListOnlineред рдЗрд╕ рд╕реНрдХреНрд░реАрди рдкрд░, рд╢рд╣рд░реЛрдВ рдХреЛ рдирд╛рдо рд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЧрддрд┐рд╡рд┐рдзрд┐
ACityListOnline.java
рдХреНрд▓рд╛рд╕ рдХреЛрдб ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ Geonames.org рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
CityTask extends AsyncTask<String, Integer, Void>
(
рд╡рд░реНрдЧ рд╕рдВрджрд░реНрдн )
(
рд╕рд┐рдЯреАрдЯреИрд╕реНрдХ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╣рд╛рдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ )
рдпрд╣рд╛рдВ, рдХреНрд╡реЗрд░реА
AGMap.java
рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреЛрдЬ рдирд╛рдо рд╕реЗ рд╣реИред
рдпрд╣рд╛рдБ рдЙрди рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рд╕реЗ рджреВрд╕рд░рд╛ рд╣реИ рдЬреЛ GeoNames рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
String[] urlString = {"http://api.geonames.org/searchJSON?q=", "&username=","&style=full"}; outURL = urlString[0] + URLEncoder.encode(str, "UTF-8") + urlString[1] + _.names1[r.nextInt(_.names1.length)] + urlString[2];
(
рд▓рд┐рдВрдХ 1 )
(
рд▓рд┐рдВрдХ 2 )
рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ
_Info
рд╡рд░реНрдЧ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
(
рд╡рд░реНрдЧ рд╕рдВрджрд░реНрдн )
(
рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд░реНрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рд▓рд┐рдВрдХ )
рдЖрдЧреЗ рдХреА рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ
ListView
рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм
_Info
рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдЕрдХреНрд╖рд╛рдВрд╢, рджреЗрд╢рд╛рдВрддрд░, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдирд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдпрд╣ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ), рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рдердХрд╛рдК рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рд╕рдм рдХреБрдЫ рд╣реИред
рдПрдХ рдмрд╛рд░ рдлрд┐рд░,
Google Play рдХрд╛ рд▓рд┐рдВрдХред
рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдЖрд░ GitHub рдкрд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
, рдзреНрдпрд╛рди рджреЗрдВ :
рдЗрд╕ рдХреЛрдб рдореЗрдВ Geonames.org рдХреЗ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИрдВред
рдЕрд░реНрдерд╛рддреН, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЛ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛
public static final String[] names1 = {"your_account_1","your_account_2"};
_.java
рд╡рд░реНрдЧ (
рд▓рд┐рдВрдХ ) рдореЗрдВ, рдФрд░ рдЕрдкрдирд╛
_.java
рднреА рдбрд╛рд▓реЗрдВред in
AndroidManifest.xml
(
рд▓рд┐рдВрдХ )
рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ред
GitHub рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ
Project>Properties>Java Build Path>Libraries>Add External JARs
рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ
Project>Properties>Java Build Path>Libraries>Add External JARs
Android_SDK_Path\extras\android\support\v4\android-support-v4.jar
Project>Properties>Java Build Path>Libraries>Add External JARs
Android_SDK_Path\extras\android\support\v4\android-support-v4.jar
:
Android_SDK_Path\extras\android\support\v4\android-support-v4.jar
ред рдлрд┐рд░
Project>Properties>Java Build Path>Order and Export
рдФрд░ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдореИрдВ рдЕрдЧрд▓реА рдмрд╛рд░ рдЖрдкрдХреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред