рд╣рд╛рд▓ рд╣реА рдореЗрдВ, Google рдореИрдкреНрд╕ API V3 рдореЗрдВ
рдПрдХ рдирдИ
рдбреНрд░реЙрдЗрдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рд╛рдордиреЗ
рдЖрдИ рд╣реИред рдпрд╣ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдорд╛рд░реНрдХрд░, рд░реЗрдЦрд╛рдПрдБ, рд╡реГрддреНрдд, рдЖрдпрдд, рдмрд╣реБрднреБрдЬ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдИрд╡реЗрдВрдЯреНрд╕ рдХреЛ рд╕реБрди рд╕рдХрддрд╛ рд╣реИ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдпрд╛ рднрдВрдбрд╛рд░рдг рдЬрд╛рдирдХрд╛рд░реА рдмрдирд╛рдХрд░ред
Google рдореИрдкреНрд╕ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдбреНрд░рд╛рдЗрдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ = рдбреНрд░рд╛рдЗрдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=drawing"></script>
DrawingManager:
рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ DrawingManager рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдкреЙрд▓реАрдЧреЙрди, рдЖрдпрддрд╛рдХрд╛рд░, рдЯреВрдЯреА рд╣реБрдИ рд░реЗрдЦрд╛рдПрдВ, рд╡реГрддреНрдд рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдорд╛рд░реНрдХрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдПрдХ
DrawingManager рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
var drawingManager = new google.maps.drawing.DrawingManager(); drawingManager.setMap(map);
рдЕрдм, рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХрд╕реНрдЯрдо рдбреНрд░рд╛рдЗрдВрдЧ рдЯреВрд▓ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВред

рд╡рд┐рдХрд▓реНрдк:
рд╣рдо рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдорд╛рдирдЪрд┐рддреНрд░ рдФрд░ рджреГрд╢реНрдп рдкрд░ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ:
рдбреНрд░рд╛рдЗрдВрдЧрдХрдВрдЯреНрд░реЛрд▓ - рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рджреГрд╢реНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмреВрд▓рд┐рдпрди рдХреЛ рд╕рдЪ / рдЭреВрда рд▓рдЧрддрд╛ рд╣реИред
DrawingControlOptions - рдирдХреНрд╢реЗ рдкрд░ рдЯреВрд▓ рдХреА рд╕реНрдерд┐рддрд┐, рд╕рд╛рде рд╣реА рдЙрди рдЯреВрд▓ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
- рд╕реНрдерд┐рддрд┐ - рдбреНрд░рд╛рдЗрдВрдЧ рдЯреВрд▓реНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ TOP_LEFT рд╣реИред
- DrawingModes - рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгред рд╣рд╛рде рдЖрдЗрдХрди рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ [MARKER, POLYLINE, RECTANGLE, CIRCLE, POLYGON] рд╣реИред
рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ - рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЙрдкрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдордВрдбрд▓рд┐рдпрд╛рдБ {}
рдорд╛рд░реНрдХрд░ {}
рдмрд╣реБрднреБрдЬ {}
рдмрд╣реБрд╡рдЪрди {}
рдЖрдпрддреЗрдВ {}рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдХрд░ рдЖрдЗрдХрди, рдЖрдХреГрддрд┐ рднрд░рдг рд░рдВрдЧ, рдЬрд╝рд┐рдВрдбреИрдХреНрд╕, рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЖрджрд┐ред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдк рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЖрдХрд╛рд░ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдпрд╛ рдирд╣реАрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдорд╛рд░реНрдХрд░ рд▓рдЧрд╛рдиреЗ, рдордВрдбрд▓рд┐рдпреЛрдВ рдФрд░ рдмрд╣реБрднреБрдЬреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ, рд╢реАрд░реНрд╖ рдХреЗрдВрджреНрд░ рдкрд░ рдЯреВрд▓рдмрд╛рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдорд╛рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдФрд░ рдордВрдбрд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред
var drawingManager = new google.maps.drawing.DrawingManager({ drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: [google.maps.drawing.OverlayType.MARKER, google.maps.drawing.OverlayType.CIRCLE, google.maps.drawing.OverlayType.POLYGON] }, drawingMode: google.maps.drawing.OverlayType.MARKER, markerOptions: { icon: new google.maps.MarkerImage('http://www.example.com/icon.png') }, circleOptions: { fillColor: '#ffffff', fillOpacity: 1, strokeWeight: 5, clickable: false, zIndex: 1, editable: true } });
рд╡рд┐рдХрд▓реНрдк рдмрджрд▓реЗрдВ:
рдЬрдм DrawingManager рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ
setOptions () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
drawingManager.setOptions({ drawingControlOptions: { position: google.maps.ControlPosition.BOTTOM_LEFT } });
рдпрд╛ рд╣рд▓рдХреЛрдВ рдХрд╛ рд░рдВрдЧ рднрд░реЗрдВ:
drawingManager.setOptions({ circleOptions: { fillColor: '#000000' } });
рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЯреВрд▓рдмрд╛рд░ рдЫрд┐рдкрд╛рдПрдБ рдпрд╛ рджрд┐рдЦрд╛рдПрдБ:
рдЯреВрд▓рдмрд╛рд░ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рднреА рд╡рд┐рдХрд▓реНрдк рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЯреВрд▓рдмрд╛рд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
drawingManager.setMap(null);
рдШрдЯрдирд╛рдХреНрд░рдо:
рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдорд╛рд░реНрдХрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рджреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
1)
{рдУрд╡рд░рд▓реЗ} рдкреВрд░рд╛ - рдЬрд╣рд╛рдВ {рдУрд╡рд░рд▓реЗ} рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдмрдирд╛рдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рд░реНрдХрд▓рдХрдореНрдкреНрд▓реАрдЯ, рдкреЙрд▓реАрдЧреЛрдирдХрдВрдкреНрд▓реАрдЯ, рдЖрджрд┐)ред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
2)
overlaycomplete - рдУрд╡рд░рд▓реЗ рдЯрд╛рдЗрдк рдФрд░ рдмрдирд╛рдИ рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдорд╛рд░реНрдХрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
google.maps.event.addListener(drawingManager, 'markercomplete', function(marker) { console.log(marker.getPosition().toString()) }); google.maps.event.addListener(drawingManager, 'overlaycomplete', function(event) { if (event.type == google.maps.drawing.OverlayType.MARKER) { console.log(' ') } });
рд╕рдВрджрд░реНрдн:
рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрдЪрд╛рд▓рди рдЙрджрд╛рд╣рд░рдгрдкреНрд░рд▓реЗрдЦрди