рдорд╛рдирдЪрд┐рддреНрд░рдг рд╕реЗрд╡рд╛ - рдХреНрдпреЛрдВ? рдареАрдХ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╣рдорд╛рд░реЗ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░рд╛рдВрдд рдореЗрдВ 10 рд╕рд╛рд▓ рддрдХ рд░рд╣рд╛, рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓реЗ рд▓рд┐рдпрд╛ рдФрд░ рдореЙрд╕реНрдХреЛ рдЪрд▓рд╛ рдЧрдпрд╛, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдирдпрд╛ рд╣реИред рдФрд░ рдЬрд╣рд╛рдВ рджреБрдХрд╛рдиреЗрдВ, рдЧреЗрдВрджрдмрд╛рдЬреА рдЧрд▓реА, рдХреИрдлреЗ, рдЕрд╡рдХрд╛рд╢ рдкрд╛рд░реНрдХ рд╣реИрдВ - рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдорд╛рд╕реНрдХреЛ рд╡реЗрддрди рдХрд╣рд╛рдВ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ? рд╡рд╣рд╛рдБ рдПрдХ рдпреЗрд▓реЛ рдкреЗрдЬ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реБрдЖ рдХрд░рддреА рдереА, рдФрд░ рдПрдХ рдирдХреНрд╢рд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдкрддреЗ рд╕реЗ рдерд╛ред рдХреБрдЫ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛ред рдЕрдм рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ: http://www.pushkino.org/ ред рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдореМрд╕рдо, рдЖрдЧ, рдЯреНрд░реИрдлрд┐рдХ рдЬрд╛рдо (рд╡реИрд╕реЗ!) рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рдЧреНрд░рд╛рд╣рдХ рдЕрдкрдирд╛ рдкрддрд╛ рджрд░реНрдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕реЗ рдирдХреНрд╢реЗ рдкрд░ рдЕрдВрдХрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЙрд╕реЗ рдорд╛рд▓ рдХрд╣рд╛рдВ рдкрд╣реБрдВрдЪрд╛рдирд╛ рд╣реИ - рдХреНрдпрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдпрд╣ рд╕рдм рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - "рдорд╛рд░реНрд╢рд▓ рдмреНрд▓реЗрдХрд░ рдПрд╡реЗрдиреНрдпреВ, 43, рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ, рд░реВрд╕"ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреМрд╢рд▓ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдп рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдирдореВрдирд╛ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рд╣реИ:
- рдПрдХ рдХрд╛рд░реНрдб рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ (рдЖрдкрдХреЛ рдХрд░рдирд╛ рд╣реИ!)
- рд╢рд╣рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
- рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рд╢рд╣рд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ
- рдорд╛рд░реНрдХрд░ рдХрд╛ рдкрддрд╛
- рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВ
- рдПрдХ рдХрд╛рд░реНрдб рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ (рдЖрдкрдХреЛ рдХрд░рдирд╛ рд╣реИ!)
- рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрд░ рд╕рд╣реЗрдЬреЗрдВ (рдЬрдм рдЖрдк рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ)
- рдкрд╛рдЗрд▓рд┐рдВрдЧ (рдпрд╛рдиреА рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ) рдорд╛рд░реНрдХрд░ рд╕реЗ рдмрдЪреЗрдВред
рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА
V.3 рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
рдореИрдк \ _ рдорд╛рд░реНрдХрд░ / рд╕реВрдЪрдирд╛
рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ 3 рдореБрдЦреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдирдХреНрд╢рд╛ рд╣реИред
рдорд╛рдирдЪрд┐рддреНрд░ рдирд┐рд░реНрдорд╛рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рд╣рдо рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░:
<div id="map_canvas"></div>
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
рд╣рдо рдирдХреНрд╢реЗ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд░рддреЗ рд╣реИрдВ:
function initialize() { var myLatlng = new google.maps.LatLng(-34.397, 150.644); var myOptions = { zoom: 8, center: myLatlng, mapTypeId: google.maps.MapTypeId.ROADMAP } var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); }
рдХреЗрдВрджреНрд░: myLatlng рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ
рдЬрд╝реВрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реИ
mapTypeId - рдкреНрд░рдХрд╛рд░ (рд░рд╛рдЬрдиреАрддрд┐рдХ, рднреМрддрд┐рдХ, рд╕рдВрдХрд░)
рдХрд╛рд░реНрдб рддреИрдпрд╛рд░ рд╣реИ!
рджреВрд╕рд░рд╛ рд▓реЗрдмрд▓ рд╣реИ :
var marker = new google.maps.Marker({ position: myLatlng, map: map, title:"Hello World!" });
рд╕реНрдерд┐рддрд┐ - рд▓реЗрдмрд▓ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ
рдореИрдк - рд▓реЗрдмрд▓ рдкрд░ рдЬрдЧрд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдореИрдк рд╣реИ
рд╢реАрд░реНрд╖рдХ - рд╣реЛрд╡рд░ рдкрд░, рдпрд╣ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рд▓рд┐рдЦреЗрдЧрд╛ред
InfoWindow
var contentString = '<div id="content"> </div>'; var infowindow = new google.maps.InfoWindow({ content: contentString }); var marker = new google.maps.Marker({ position: myLatlng, map: map, title: 'Uluru (Ayers Rock)' }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); });
рд╕рд╛рдордЧреНрд░реА - рд▓реЗрдмрд▓ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА
google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); });
- рд▓реЗрдмрд▓ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп, рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдПрдВред
рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ
рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рд╕рд┐рд░реНрдл рдПрдХ рдорд╣рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд░реНрдл 2 рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдирд╛рдо рд╕реЗ, рдЙрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдвреВрдВрдвреЗрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛, рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдЬреЛ рдЗрди рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╡рд╛рдиреЛрд╡ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИред рд╣рдо рдПрдХ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
http://maps.googleapis.com/maps/api/geocode/json?address= рдЗрд╡рд╛рдиреЛрд╡реЛ рдФрд░ рд╕реЗрдВрд╕рд░ = рдЧрд▓рдд рдФрд░ рднрд╛рд╖рд╛ = рдПрди
рдФрд░ рдЬрд╡рд╛рдм рдореЗрдВ рдЖрддрд╛ рд╣реИ:
{ "status": "OK", "results": [ { "types": [ "locality", "political" ], "formatted_address": " , , ", - "address_components": [ { - "long_name": " ", "short_name": " ", "types": [ "locality", "political" ] }, { "long_name": " ", "short_name": " ", "types": [ "administrative_area_level_2", "political" ] }, { "long_name": " ", "short_name": " ", "types": [ "administrative_area_level_1", "political" ] }, { "long_name": "", "short_name": "RU", "types": [ "country", "political" ] } ], "geometry": { "location": { - "lat": 56.9924086, "lng": 40.9677888 }, "location_type": "APPROXIMATE", "viewport": { - "southwest": { "lat": 56.9699256, "lng": 40.9265167 }, "northeast": { "lat": 57.0148916, "lng": 41.0090609 } }, "bounds": { - "southwest": { "lat": 56.9699256, "lng": 40.9265167 }, "northeast": { "lat": 57.0148916, "lng": 41.0090609 } } } } ] }
рд╕рднреА рдЖрдХрд░реНрд╖рдг рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ (рдЗрд╡рд╛рдиреЛрд╡, рдЗрд╡рд╛рдиреЛрд╡реЛ, <рдПрдХ рдЕрд░рдмреА рд▓рд┐рдкрд┐>) рдореЗрдВ рдкрддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдФрд░ рднреА рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рдХреЗ рд▓рд┐рдП "рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ" рдФрд░ "рдкреАрдЯрд░" рд░реЛрд▓ред рд╕рдЪ рд╣реИ, рджреЛрд╖ рд╣реИрдВ: рдЗрд╡рд╛рдиреЛ-рдлреНрд░реИрдВрдХрд┐рд╡рд╕реНрдХ рдХреЗ рдореЗрд░реЗ рдЧреГрд╣рдирдЧрд░ рдиреЗ рдЗрд╡рд╛рдиреЛ-рдлреНрд░реИрдВрдХрд┐рд╡рд╕реНрдХ рдХреЛ рдпреВрдХреНрд░реЗрдиреА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ред
рджреВрд╕рд░реА рд╕рдВрднрд╛рд╡рдирд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╣реИ:
http://maps.googleapis.com/maps/api/geocode/json?latlng=55.75320193022759,37.61922086773683&sensor=false&language=ru
рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
{ "status": "OK", "results": [ { "types": [ "street_address" ], "formatted_address": " ., 3, , , 109012", "address_components": [ { "long_name": "3", "short_name": "3", "types": [ "street_address" ] }, { "long_name": " .", "short_name": " .", "types": [ "route" ] }, { "long_name": "", "short_name": "", "types": [ "sublocality", "political" ] }, { "long_name": " ", "short_name": " ", "types": [ "locality", "political" ] }, { "long_name": " ", "short_name": " ", "types": [ "administrative_area_level_2", "political" ] }, { "long_name": "", "short_name": "", "types": [ "administrative_area_level_1", "political" ] }, { "long_name": "", "short_name": "RU", "types": [ "country", "political" ] }, { "long_name": "109012", "short_name": "109012", "types": [ "postal_code" ] } ], "geometry": { "location": { "lat": 55.7546971, "lng": 37.6215214 }, "location_type": "ROOFTOP", "viewport": { "southwest": { "lat": 55.7515495, "lng": 37.6183738 }, "northeast": { "lat": 55.7578447, "lng": 37.6246690 } } } }, { ...
рд╕реБрдкрд░! рдЕрдкрдиреЗ рдкрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд╕ рдЕрдкрдиреЗ рдШрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рд╡рд╣ рд╕рдмред рдХрднреА-рдХрднреА рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдШрд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдХрд░реАрдм рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ 1 рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ 2-3 рдирд╣реАрдВ, рддреЛ рдЙрдирдХрд╛ рдПрдХ рдкрддрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреБрд░рд╛ рд╣реИ рдЬрдм рд╡реЗ рд╕рдбрд╝рдХреЛрдВ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдкрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдШрд░ рдПрдХ рд╕рдбрд╝рдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╕реАрдзрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рд╕рдбрд╝рдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдШрд░ рдФрд░ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рдиред
рд╡реИрд╕реЗ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jquery $ .getJSON рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдЬрд┐рдпреЛрдХреЛрдбрд░ рд╡рд░реНрдЧ ( http://code.google.com/apis/maps/documentation/javascript/reference.html#Geocoder ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ (рдЕрд░реНрдерд╛рдд) рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЧреЗрдЯрдЬреЙрди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
рдФрд░ рдЕрдм рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЬрд┐рдпреЛрдХреЛрдбрд░ - рдлрд╝рдВрдХреНрд╢рди рдХрд┐рддрдирд╛ рд╢рд╛рдВрдд рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рддрд┐ рджрд┐рди рдХреЗрд╡рд▓ 2500 рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Google Google API Key Premier рдХреЛ $ 10,000 рдкреНрд░рддрд┐ рд╡рд░реНрд╖ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рд░ рджрд┐рди "рдХреВрд▓" рдРрдб-рдСрди рдХреЗ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рд╕реАрдорд╛ 100 рд╣рдЬрд╛рд░ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдмрд░реНрджрд╛рд╢реНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
Markercluster
рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рдорд╛рд░реНрдХрд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрдпрд╛рдирдХ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрди рд╕рднреА рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рд╣реЗрдмреНрд░реЗ рдкрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪрд░реНрдЪрд╛ рджреЗрдЦреА: http://habrahabr.ru/blogs/google/28621/
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ (рдФрд░ рдпрд╣рд╛рдБ http://code.google.com/apis/maps/articles/toomanymarkers.html рдХрд╛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реИ) рдЬреЛ рд╣рдореЗрдВ рдорд╛рд░реНрдХрд░ рдХреЛ рдбрд░рд╛рддреЗ рд╣реБрдП рднреАрдбрд╝ рдХреЛ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
рдХреЗ рдмрд╛рдж:
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/
рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛрдбрд╝реЗрдВ
<script type="text/javascript" src="/Media/script/map/markerclusterer_packed.js"></script>
рд╣рдо рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдорд╛рд░реНрдХрд░реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВ:
var markers = []; var marker = new google.maps.Marker({ position: latlng }); markers.push(marker); markerClusterer = new MarkerClusterer(_this.map, markers, { maxZoom: 13, gridSize: 50, styles: null });
maxZoom - рдЕрдзрд┐рдХрддрдо рдЬрд╝реВрдо рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЕрднреА рднреА рд╕рдореВрд╣ рдорд╛рд░реНрдХрд░, рдЖрдЧреЗ - рдЕрдм рдирд╣реАрдВред
рдЧреНрд░рд┐рдбрд╕рд╛рдЗрдЬрд╝ - рдЧреНрд░рд┐рдб рд╕реЗрд▓ рдХрд╛ рдЖрдХрд╛рд░, рдЫреЛрдЯрд╛ рдореВрд▓реНрдп, рдЧреНрд░рд┐рдб рд╕рдореВрд╣ рдХрд╛ рдЫреЛрдЯрд╛
рд╢реИрд▓рд┐рдпреЛрдВ - рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реИрд▓рд┐рдпреЛрдВ
рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХреЛрдб
рдореИрдВ рдпрд╣рд╛рдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдЙрдкрдХрд░рдг рддреИрдпрд╛рд░ рд╣реИрдВ, рдореИрдВ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛, рдФрд░ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред
рдмрд╣реБрдд рдХрдо рд╕рд░реНрд╡рд░ рдХреЛрдб (asp.net mvc) рд╣реИ, рдХреЗрд╡рд▓ 4 рдЕрдиреБрд░реЛрдз:
- рдкреЗрдЬ рд╣реА
- рд╕рднреА рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдЬрд╕рди рдореЗрдВ)
- рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ (ajaxUploader рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдФрд░ рдЪрд┐рддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдорд╛рд░реНрдХрд░ рдХреЛ рдмрдЪрд╛рдПрдВ (json result = ok output)
рдореБрдЦреНрдп jquery рдХреЛрдб (рдпрд╣рд╛рдБ рдкреВрд░реНрдг рдореЗрдВ: cocosanka.ru/media/script/map/map.js ) рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╣реИрдВ, рдФрд░ рд╡рд╣ рд╕рдмред
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдп:
рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬрд╝реВрдо рдорд╛рди рдХреА рдЧрдгрдирд╛
(рдпрд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛: http://groups.google.com/group/google-maps-js-ap-v3/browse_thread/thread/43958790eafe037f/66e889029c555bb?fwc=2 )
this.getZoom = function (bounds) { var width = $(".map").width(); var height = $(".map").height(); var dlat = Math.abs(bounds.getNorthEast().lat() - bounds.getSouthWest().lat()); var dlon = Math.abs(bounds.getNorthEast().lng() - bounds.getSouthWest().lng()); var max = 0; if (dlat > dlon) { max = dlat; } else { max = dlon; } var clat = Math.PI * Math.abs(bounds.getSouthWest().lat() + bounds.getNorthEast().lat()) / 360.; var C = 0.0000107288; var z0 = Math.ceil(Math.log(dlat / (C * height)) / Math.LN2); var z1 = Math.ceil(Math.log(dlon / (C * width * Math.cos(clat))) / Math.LN2); //18 тАУ zoom google.maps return 18 - ((z1 > z0) ? z1 : z0); }
"рдХреВрдж" рдорд╛рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди:
this.toggleBounceMarker = function() { if (_this.setMarker.getAnimation() != null) { _this.setMarker.setAnimation(null); } else { _this.setMarker.setAnimation(google.maps.Animation.BOUNCE); } }
рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
this.SetAddresses = function (results) { $(".address_list").show(); $(".address_list").empty(); var addressText = _this.ComposeAddress(results[0]); ... } // this.ComposeAddress = function (item) { retAddress = ""; $.each(item.address_components, function (i, address_item) { var isOk = false; $.each(address_item.types, function (j, typeName) { // () - administrative_level_2 if (typeName != "street_address" && typeName != "locality") { isOk = true; } }); if (isOk) { if (retAddress == "") { retAddress = address_item.long_name; } else { retAddress = retAddress + ", " + address_item.long_name; } } }); return retAddress; }
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░
Google рдореИрдкреНрд╕ рдПрдкреАрдЖрдИ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЦрд░рд╛рдм рд╣реИ рд╡рд╣ рд░реВрд╕ рдореЗрдВ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЦрд░рд╛рдм рдХрд╡рд░реЗрдЬ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреЛ рд╕реЗрд╡рд╛рдПрдВ рдЖрдЙрдЯрдмреИрдХ google.maps рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рд╡реЗ рдЕрднреА рднреА рдХрдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рд╢рд╣рд░реЛрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рд╕реНрдХреЛ рдФрд░ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдпреВрдХреНрд░реЗрди рдХреЗ рд▓рд┐рдП, рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред
рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИ рдФрд░ рдЕрдЧрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рд╡реЗ рдЙрд╕ рдкреИрд╕реЗ рдХреЛ рдЦрд░реНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реИрдВ (рдареАрдХ рд╣реИ, рдпрд╛ рддреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдпрд╛ рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдкрд╛рд╕
рдЙрджрд╛рд╣рд░рдг \ рд╕реНрд░реЛрдд
рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: http://cocosanka.ru/map (рдпрджрд┐ рдЬрд┐рдпреЛрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рд╢рд╣рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ, рдлрд┐рд░ рдорд╛рд░реНрдХрд░ рдЦреАрдВрдЪреЗрдВ, рдлрд┐рд░ рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВред рдорд╛рд░реНрдХрд░реЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд: https://bitbucket.org/chernikov/citylocator