рдирдорд╕реНрддреЗ, рдЗрд╕ рдкрд░ https://github.com/googlemaps/js-marker-clusterer рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рд╕рдВрдХреЗрдд? рдзрдиреНрдпрд╡рд╛рдж!
рдХреЛрдИ рдЦреЗрдж рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдХреЛрдИ рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВ рдЕрднреА рдЖрдкрдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ
@SebastianM рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: https://github.com/SebastianM/angular2-google-maps/pull/311
рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ? markerclusterer js рдлрд╛рдЗрд▓реЗрдВ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдореИрдВ .getMap () рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реВрдВред
@AbdulTheProgrammer рдореИрдВ рдЗрд╕ рдкрд░ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдореЗрд░реА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛? рдЖрдкрдХреЛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдиреЗ GoggleMapsAPIWrapper рд╕реЗрд╡рд╛ рдХреЗ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдкрд░ getMap () рдХрд╣рд╛ рд╣реИ, рдЬреЛ рдирдХреНрд╢реЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рд╕рдордп рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИ ...ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ sebm-google-map рдХреЗ рдЕрдВрджрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ; рдпрд╣ GoogleMAPAPIWrapper рдФрд░ рдиреЗрдЯрд┐рд╡ рдореИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреАрдЖрдИ (window.google.maps) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред
@ricardojbertolin рдЬреЛ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╕реЗрдмрд╕реНрдЯрд┐рдпрди рдиреЗ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдерд╛ # 311, рдирдХреНрд╢реЗ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдкреЛрдиреЗрдВрдЯ рд╣реИ рдХрд┐ рдореВрд▓ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдХреИрд╕реЗ
рдореИрдВ js-рдорд╛рд░реНрдХрд░-рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдореВрд▓ рдирдХреНрд╢реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдорд┐рд▓рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдореВрд▓ рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рднреА рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рдХреЛ рднреА рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреИрд╕реЗ рдореЗрд░реЗ <sebm-google-map-marker>
s рдХреЗ рд▓рд┐рдП рдореВрд▓ рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рд░реНрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@alexweber
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдФрд░ GoogleMapsApiWrapper рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ?
рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ "рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рд░рдЦрдиреЗ" рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред
@ siegerx3 рдпрд╣ рд╕рд░рд▓ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдПрдБ:
import { Directive } from '@angular/core';
import { GoogleMapsAPIWrapper } from 'angular2-google-maps/core';
@Directive({
selector: 'custom-directive'
})
export class CustomMapDirective {
constructor (private gmapsApi: GoogleMapsAPIWrapper) {
this.gmapsApi.getNativeMap().then(map => {
// map is the native google map object and the wrapper is the same instance as the one on the map
});
}
}
рдореИрдВрдиреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдореБрдЭреЗ рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдЖрдк рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрд┐рдирд╛ рдпрд╣ рдХрд╣реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕ рдШрдЯрдХ рдХреЗ directives
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ / рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдмрд╕ рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдореИрдк рдХреЗ рдЕрдВрджрд░ рдбрд╛рд▓реЗрдВ:
<sebm-google-map>
<!-- markers, info windows, etc -->
<custom-directive></custom-directive>
</sebm-google-map>
Angular2 DI рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг, рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ GoogleMAPAPIWrapper рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рддрдм рддрдХ рдШрдЯрдХ рдЯреНрд░реА рдКрдкрд░ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдПрдХ рди рдорд┐рд▓ рдЬрд╛рдПред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ 1 рдЪрд░рдг рд╣реИ рдФрд░ рд╣рдо GoogleMapsAPIWrapper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ sebm-google-map
рдШрдЯрдХ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
@jfmaeck MarkerManager
рд╕реЗрд╡рд╛ рдкрд░ getNativeMarker()
рдкрджреНрдзрддрд┐ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЙрд╕ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрд╕реА рдорд╛рд░реНрдХрд░ рдкреНрд░рдмрдВрдзрдХ рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд░реИрдкрд░ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@alexweber
рдХреЛрдб рджреЗрдЦрдХрд░, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЕрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ! рдзрдиреНрдпрд╡рд╛рдж :)
рджреЗрд╢реА рдорд╛рд░реНрдХрд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЖрдкрдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП @alexweber рдЖрдкрдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐: getNativeMarker()
MarkerManager
рдХреА рд╡рд┐рдзрд┐ SebmGoogleMapMarker
рдЗрдВрд╕реНрдЯреЗрдВрд╕ (рдорд╛рд░реНрдХрд░ рдШрдЯрдХ) рдХреЛ рдЕрдкрдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреА рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рдШрдЯрдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
@jfmaeck рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ! рдореИрдВ рдЗрд╕ рд╕рдордп 100% рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдиреЗ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЖрдк рд╢рд╛рдпрдж рдЕрдкрдиреЗ рдШрдЯрдХ рдореЗрдВ @ViewChild('myMarker'): SebmGoogleMapMarker
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ #
рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: <sebm-google-map-marker #myMarker>
рдпрд╛рдж рд░рдЦреЗрдВ ViewChild рдХреЗрд╡рд▓ ngAfterViewInit
рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
@alexweber рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рджред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ @ViewChildren рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рд░реНрдХрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореИрдВрдиреЗ рдкреНрд▓рдВрдХрд░ рдкрд░ рдбреЗрдореЛ рдХреЛ рдлреЛрд░реНрдХ рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рддрд╛рдХрд┐ ViewChildren рдкрд░рд┐рдгрд╛рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рд╣реЛ рдЬрд╛рдП (рдлрд┐рд▓рд╣рд╛рд▓ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА):
markers after view init []
http://plnkr.co/edit/7rdOz3QswDL0pik7SmAS?p=preview
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд╣реБрдд рд╡реНрдпрд╕реНрдд рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ред
@jfmaeck рдЬрдм рдЖрдк @ContentChildren рдХрд╛ рдЙрдкрдпреЛрдЧ http://plnkr.co/edit/mukdlZ7K7C7m6aTdDTp?p=preview
@jfmaeck рдЖрдк рдХрд░реАрдм рдереЗ, рдпрд╣рд╛рдБ @ViewChildren
рд╕рд╛рде рдЖрдкрдХреЗ рдкреНрд▓рдВрдХ рдХрд╛ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рдВрдЯрд╛ рд╣реИ: http://plnkr.co/edit/rJMCFoX9GokturcJljLh.p=preview
рдХрд╕реНрдЯрдо рдореИрдк рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @ContentChildren
(рдЬреИрд╕реЗ @SebastianM рдиреЗ рдмрддрд╛рдпрд╛) рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдорд╛рд░реНрдХрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдЯрдХ рд╣реЛред рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ред
рдЖрдкрдХреЛ рдмрд╣реБрдд рдмрд╣реБрдд @SebastianM рдФрд░ @alexweber рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдм рд╕реЗ @alexweber @SebastianM рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХреИрд╕реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдЖрдк js-рдорд╛рд░реНрдХрд░-clusterer рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ? рдХреНрдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╝реВрдо-рд╕реНрддрд░ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдФрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВ: http://i65.tinypic.com/10gxkcw.png
@ricardojbertolin рдХрд┐рд╕реА рднреА рдореМрдХрд╛ рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ angular2 рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдирдпрд╛ рд╣реВрдВ (рдПрдХ рд╕рд╛рд▓ рд╕реЗ angularjs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рдФрд░ рдореИрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЦреЛ рдЧрдпрд╛ рд╣реВрдВред
@alexweber , рдХреНрдпрд╛ рдЖрдкрдиреЗ markerclusterer.js рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛? рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
@jpcode рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдХреБрдЫ рд╕рдордп рдореЗрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рд╣реБрдЖ ...
рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╣рд▓ рд╣реИред
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд▓рдВрдХрд░ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?
@jpcode
@alexweber
@ siegerx3 рдЕрдЪреНрдЫрд╛, рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛ред
рдореИрдВ рд╕рд┐рд░реНрдл рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдПрдкреАрдЖрдИ + markerclusterer.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
@ siegerx3 , рдпрд╣ рдПрдХ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ Google рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
https://plnkr.co/Tr1Ykj12HCkF9InQmuW
POC рд▓рдВрдмрд┐рдд:
рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП "Google" рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрджрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓реЛрдб Google рдХреЛ lib рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдкреНрд░рджрд╛рди рдХрд░реЗрдВ (MapsAPILoader, {useClass: NoOpMapsAPILoader}) рдФрд░ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░рд░.js рдЬреЛрдбрд╝реЗрдВред
рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рд╣реИ рдЕрдЧрд░ рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ :)
@jpcode
рдореИрдВрдиреЗ рдШрдВрдЯреЛрдВ рдЗрд╕реЗ рдкреНрд▓рдВрдХрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ ... рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗред
рд╣рдореЗрд╢рд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВред
рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдХреЛрдб рджрд┐рдЦрд╛рдКрдВрдЧрд╛ ...
import { Directive, OnDestroy, OnInit } from '@angular/core';
import { GoogleMapsAPIWrapper } from 'angular2-google-maps/core';
import { GoogleMap, Marker } from 'angular2-google-maps/core/services/google-maps-types';
import { AppService } from '../../../services/index';
import { Observable } from 'rxjs';
declare const google;
declare const MarkerClusterer;
@Directive({
selector: 'custom-map'
})
export class CustomMapDirective implements OnInit, OnDestroy {
private map: GoogleMap;
constructor(private gmapsApi: GoogleMapsAPIWrapper, private appService: AppService) {
}
ngOnInit() {
this.gmapsApi.getNativeMap().then(map => {
this.map = map;
let shopMarker = {
url: "assets/img/marker_shop.svg", // url
scaledSize: new google.maps.Size(50, 50)
}
let loungeMarker = {
url: "assets/img/marker_lounge.svg", // url
scaledSize: new google.maps.Size(50, 50)
}
let markers = [];
let style = {
url: "/assets/img/marker.svg",
height: 50,
width: 50,
anchor: [-14, 0],
textColor: '#bd0b1d',
textSize: 11,
backgroundPosition: "center center"
};
var options = {
imagePath: "/assets/img/marker",
gridSize: 70,
styles: [style, style, style]
};
Observable
.interval(500)
.skipWhile((s) => this.appService.Shops == null || this.appService.Shops.length <= 0)
.take(1)
.subscribe(() => {
for (let shop of this.appService.Shops) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(shop.Latitude, shop.Longitude),
icon: shop.Lounge ? loungeMarker : shopMarker
});
google.maps.event.addListener(marker, 'click', () => {
this.appService.SelectedShop = shop;
});
markers.push(marker);
}
var markerCluster = new MarkerClusterer(map, markers, options);
}
})
});
}
}
рдЖрдк рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рдЯреИрдЧ рдореЗрдВ рдбрд╛рд▓реЗрдВ:
<sebm-google-map>
<custom-map></custom-map>
</sebm-google-map>
@ siegerx3 , рдореИрдВрдиреЗ рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреАрдУрд╕реА рдмрдирд╛рдпрд╛
рджреГрд╖реНрдЯрд┐рдХреЛрдг:
рдЖрдк рдХреЛрдгреАрдп-2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рд╕реЗ рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдмреЗрд╣рддрд░ рд╣реИред
->
рдХреНрдпреЛрдВрдХрд┐ рдореИрдк рдХреЛ рдкреЗрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓рд┐рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдмрд╕ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рд▓рд┐рдмрд╛рд╕ + рдХреНрд▓реЗрд░.рдЬреЗрдПрд╕ рдХреЛ рдкрд╣рд▓реЗ рдкреНрд▓рдВрдХрд░ рд╢реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
import { Directive } from '@angular/core';
import { GoogleMapsAPIWrapper } from 'angular2-google-maps/core';
import { GoogleMap, Marker } from 'angular2-google-maps/core/services/google-maps-types';
// npm install js-marker-clusterer --save
import 'js-marker-clusterer/src/markerclusterer.js';
declare const google;
declare const MarkerClusterer;
@Directive({
selector: 'googlemap-directive'
})
export class GoogleMapDirective {
googleMarkers : any;
_map: any;
zoom: number = 3;
lat: number = 51.673858;
lng: number = 7.815982;
markers: marker[] = [
{
lat: 51.673858,
lng: 7.815982
},
{
lat: 51.373858,
lng: 7.215982
},
{
lat: 51.723858,
lng: 7.895982
}
]
initMarkers(){
let i = 0;
let markers = this.markers;
var result = [];
for ( ; i < markers.length; ++i ){
result.push( new google.maps.Marker({
position : markers[ i ]
})
);
}
return result;
}
constructor (private gmapsApi: GoogleMapsAPIWrapper) {
var me = this;
this.gmapsApi.getNativeMap().then(map => {
// instance of the map.
me._map = map;
me.initializeMap();
});
}
initializeMap(){
var me = this;
me.googleMarkers = me.initMarkers();
var mc = new MarkerClusterer( me._map, me.googleMarkers, { imagePath: 'https://googlemaps.github.io/js-marker-clusterer/images/m' } );
}
}
interface marker {
lat: number;
lng: number;
}
рд▓реЛрдб рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рджреЛ рдмрд╛рд░ рдПрдВрдЧреБрд▓рд░ 2-рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рд╕реЗ рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдкрдиреЗ рдШрдЯрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ
import {OnInit, Component } from '@angular/core';
import { SebmGoogleMap, MapsAPILoader, NoOpMapsAPILoader } from 'angular2-google-maps/core';
@Component({
selector: 'site-map',
templateUrl: './site-map.component.html',
styleUrls: ['./site-map.component.css'],
providers: [
{
provide: MapsAPILoader, useClass: NoOpMapsAPILoader
}
],
})
рдЕрдкрдиреА рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
<sebm-google-map #sitemap
[disableDefaultUI]="false"
[zoom] = "zoom"
[zoomControl]="true"
[latitude]="lat" [longitude]="lng">
<!--
<sebm-google-map-marker
*ngFor="let m of markers; let i = index"
(markerClick)="openDetail(m)"
[latitude]="m.lat"
[longitude]="m.lng"
[label]="m.label"
[markerDraggable]="m.draggable"
[iconUrl]="'assets/img/marker.png'"
(dragEnd)="markerDragEnd(m, $event)">
<sebm-google-map-info-window [disableAutoPan]="true" (infoWindowClose)="onCloseDetail.emit()">
<h5>{{m.address}}</h5>
<div>{{m.city}}, {{m.state}}, {{m.country}}</div>
</sebm-google-map-info-window>
</sebm-google-map-marker>
-->
<googlemap-directive></googlemap-directive>
</sebm-google-map>
@jpcode
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдореИрдкреНрд╕ рдПрд╕рдбреАрдХреЗ рджреЛ рдмрд╛рд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред
рдореИрдВ рд╕рд┐рд░реНрдл рдПрдЧреНрдо рдХреЛ рдЙрддрдирд╛ рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реВрдВ рдЬрд┐рддрдирд╛ рд╡рд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд░реНрдл рдЬрд░реВрд░реА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЦреБрдж рдХрд░рддрд╛ рд╣реИред
@ siegerx3
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@ рдирд░рдХ smрей
рдореИрдВ рдПрдХ рдХрд▓ рдмрдирд╛рдКрдВрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ :)
рдХреНрдпрд╛ рдЖрдк рдХреЛрдгреАрдп-рдХреНрд▓рд┐ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ? рдЕрдиреНрдпрдерд╛ рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдореВрд▓ рдПрдХ рдХрд░реВрдБрдЧрд╛ред
@ siegerx3
рд╣рд╛рдБ, рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ ... рдореИрдВ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдПрдкреАрдЖрдИ + рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╕реНрдЯрд░реАрдХрд░рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореИрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрдЬрд╛рдп, рдХреЛрдгреАрдп 2-рдЧреВрдЧрд▓-рдореИрдк ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред
рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП tnx рдмрд╣реБрдд
@ рдирд░рдХ smрей
https://drive.google.com/open?id=0B4y4KJY7l3rPNTdqR0hyNTRqVHc
рдмрд╕ npm install
рдФрд░ ng serve
ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдгреАрдп-рдХреНрд▓рд┐ npm install angular-cli -g
рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред
рдпрд╛рдж рд░рдЦреЗрдВ, рдпрд╣ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореИрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдХреНрд▓рд╕реНрдЯрд░ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рд╕реНрд╡рд░реВрдкрдг рдЕрдЬреАрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдкрд░рдорд╛рдгреБ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрдкрд╛рджрдХ ^ ^ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛
@ siegerx3
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ :)
рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрджреНрдпрддрди рдХреЛрдгреАрдп 2 рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ im рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
@SteveDowsett
рдЖрдк рдЕрднреА рднреА рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :)
рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ
@ рдирд░рдХ smрей
Btw рдиреЗ рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛? рдХреНрдпрд╛ рдЗрд╕рдиреЗ рдЖрдкрдХреА рдорджрдж рдХреА?
@ siegerx3
рд╣рд╛рдВ, рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓реАред Tnx!
@ siegerx3
рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрджреЛрд╕!
рд▓реЗрдХрд┐рди рдЕрдм рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдПрдХ рдЕрджреНрдпрддрди рд╕рд░рдгреА рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП ngOnChanges рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдореИрдВ рд╕рд░рдгреА рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рд╕рд░рдгреА рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рдорд╛рд░реНрдХрд░ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВред
рдХреЛрдИ рд╕реБрдЭрд╛рд╡?
@nanomoffet
рдпрд╣ рдорджрдж рдХреА рдорд╣рд╛рди!
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВ рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдЙрд╕реА / рд╕рдорд╛рди рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рд╕рдордп рдирд╣реАрдВ рдерд╛ред
рдореИрдВ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ рдЬрдм рдореИрдВрдиреЗ рдХреБрдЫ рдкрд╛рдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрд╛рддрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреЗ рдореБрджреНрджреЗ рдХрд╛ рд╣рд▓ рдорд┐рд▓рд╛ред
.interval(100)
.take(1)
.subscribe(() => {
if(this.markerCluster) {
this.markerCluster.clearMarkers();
}
if (this.points.length > 0) {
for (let point of this.points) {
let marker = new google.maps.Marker({
position: new google.maps.LatLng(point.Latitude, point.Longitude),
icon : markerIcon
});
this.markers.push(marker);
}
} else {
this.markers = [];
}
this.markerCluster = new MarkerClusterer(map, this.markers, options);
});
рдореИрдВрдиреЗ рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЗ рдмрд╛рд╣рд░ рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЕрдЧрд░ рдпрд╣ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓реАрдорд░рдХрд╛рд░ () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирдХреНрд╢реЗ рд╕реЗ рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рдорд╛рд░реНрдХрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕рд░рдгреА рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рд╕рд░рдгреА рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рддрд░реНрдХ) ) рдХрд╛ рд╣реИред
рдпрд╣ рдореЗрд░рд╛ рдореБрджреНрджрд╛ рддрдп рдХрд░ рджрд┐рдпрд╛, рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреА рднреА рдорджрдж рдХрд░реЗрдЧрд╛ @ siegerx3
@nanomoffet
рдореИрдВ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗ рдЬрдм рдореИрдВ рдЙрд╕ рднрд╛рдЧ рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо, рдзрдиреНрдпрд╡рд╛рдж :)
рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдореИрдВ рдПрдХ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ getNativeMap рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛
рдореИрдВ рдПрдХ рдирдХреНрд╢рд╛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
<sebm-google-map>
<mapmenu-component></mapmenu-component>
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмрдХреЛрдореНрдкреЛрдиреЗрдВрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ
рдпрд╣ html рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
<div class="sebm-google-map-content" _ngcontent-rgy-8="">
рдЬреЛ рдПрдХ рдЕрджреГрд╢реНрдп рдШрдЯрдХ рд╣реИ
рдХреНрдпрд╛ рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рд╕реЗ sebm-google-map рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ html рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ?
рдореИрдВ рдЗрд╕реЗ html рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдУрд╡рд░рд▓реЗрд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ 2 рдШрдЯрдХреЛрдВ (рдирд┐рд░реНрджреЗрд╢ + рдШрдЯрдХ) рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
1.) рдПрдХ рдЬреЛ sebm-google-map рдХреЗ рдЕрдВрджрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдкреАрдЖрдИ рдЕрднрд┐рдЧрдордХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
2.) рдПрдХ рдЬреЛ sebm-google-map рдХреЗ рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ HTML рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ)
рд╣рд╛рдп рдЯреАрдо,
@ siegerx3 рдореИрдВрдиреЗ https://drive.google.com/open?id=0B4y4KJY7l3rPNTdqR0hyNTRqVHc рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ
@ рдкреНрд░рдХрд╛рд╢рдкреНрд░рдХрд╛рд╢
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдЕрднреА рддрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдк рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдореВрд▓ рдореИрдкреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рдХрд╕реНрдЯрдо рдШрдЯрдХ рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорддрд▓рдм, рд▓реЗрдмрд▓ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рдВрдбреЛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡реЗрдирд┐рд▓рд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред
@ рдкреНрд░рдХрд╛рд╢рдкреНрд░рдХрд╛рд╢
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж рдЗрд╕реА рдЪреАрдЬ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП MarkerClustererPlus рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕реНрд╡рдпрдВ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рдВрдбреЛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
.interval(100)
.take(1)
.subscribe(() => {
if (this.markerCluster) {
this.markerCluster.clearMarkers();
this.markers = [];
}
if (this.points.length > 0) {
for (let point of this.points) {
let marker = new google.maps.Marker({
position: new google.maps.LatLng(point.Latitude, point.Longitude),
icon : markerIcon,
title: 'this is a title'
});
marker.addListener('mouseover', function() {
infowindow.open(map, marker);
});
marker.addListener('mouseout', function() {
infowindow.close(map, marker);
});
this.markers.push(marker);
}
} else {
this.markers = [];
if (this.markerCluster) {
this.markerCluster.clearMarkers();
}
}
this.markerCluster = new MarkerClusterer(map, this.markers, options);
google.maps.event.addListener(this.markerCluster, 'mouseover', function(cluster) {
let content = 'Cluster Window';
let info = new google.maps.MVCObject;
let clusterInfowindow = new google.maps.InfoWindow();
clusterInfowindow.setContent(content);
clusterInfowindow.open(map, info);
clusterInfowindow.setPosition(cluster.getCenter());
google.maps.event.addListener(map, 'zoom_changed', function() { clusterInfowindow.close(); });
});
});
рдПрдХрдорд╛рддреНрд░ рдореБрджреНрджрд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдХреИрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╡реЗ рдирдХреНрд╢реЗ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдкрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдирд╣реАрдВред
рдХрд┐рд╕реА рдХреЛ рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдХреЛрдгреАрдп 2 рдореЗрдВ рд╡реЗрдкреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╕рдВрджрд░реНрднрд┐рдд " https://developers.google.com/maps/documentation/javascript/reference#DirectionsWaypoint " рдХреЗ рд░реВрдк рдореЗрдВ lat рдФрд░ lng рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
@naranmistry рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдЖрдкрдХреА рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ?
рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдирдкреЙрдЗрдВрдЯ рдореЗрдВ рд▓реИрдВрдЧ рдФрд░ рд▓рд╛рдЯ рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдпрд╣ рдПрдВрдЧреБрд▓рд░ 2-рдЧреВрдЧрд▓-рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рджреЗрд╢рд╛рдВрддрд░ рдФрд░ рдЕрдХреНрд╖рд╛рдВрд╢ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреЙрдк рдУрд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╛рд░реНрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯрд┐рдиреЛ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрджрд┐ рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ location Type: string|LatLng|Place
рдХрд╣рддрд╛ рд╣реИред рддреЛ рд╣рд╛рдБ рдЖрдк Google рдореИрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ LatLng рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╣реА рдЪрд╛рд╣рд┐рдП?
рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдХрд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдХреНрдпрд╛ рд▓реЗрдЯ рдФрд░ рд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдкреЙрдЗрдВрдЯреНрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ?
рдЗрд╕ рднреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдХрд┐ рдореБрдЭреЗ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдирд╛ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдкреНрд▓рдВрдХрд░ рдХреА рддрд░рд╣, рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ :)
рдареАрдХ рд╣реИ, рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдПрдХ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦреВрдБрдЧрд╛
рдзрдиреНрдпрд╡рд╛рдж
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдореИрдВ _click event_ рдХреЛ _infowindow_ рдХреЗ рдЕрдВрджрд░ _marker-рдХреНрд▓рд╕реНрдЯрд░_ рдХреЗ рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рд▓рд┐рдП _sebm-google-map-info_ рдШрдЯрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдзрдиреНрдпрд╡рд╛рдж!
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ @fsciutiред
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ ?
рдЪреВрдБрдХрд┐ agm-maps
рдЕрднреА рднреА рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ @ siegerx3 рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдпрд╛, рдорд╛рд░реНрдХрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдорд╛рд░реНрдХрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЙрджрд╛рд╣рд░рдг @nanomoffetред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо! рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдиреЗ рдмрд╣реБрдд рдорджрдж рдХреАред
рдХреБрдЫ рд╡рд╛рдкрд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдХреЗ рддрд╣рдд @ siegerx3 рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ:
https://drive.google.com/open?id=0B51AX67ezltoOFdSNTQ1NlQ4SU0
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЧрдП рд╣реИрдВ:
@agm/core
рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рдирд┐рд░реНрднрд░рддрд╛рдПрдБ@agm/core
рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП@andorfermichael рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЖрджрдореА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж, рдЖрдк рдорд╣рд╛рди рд╣реИрдВ! рдПрдХ рдкреНрд░рд╢реНрди рдХреГрдкрдпрд╛: рдпрджрд┐ рдореИрдВ рдирд┐рд░реНрджреЗрд╢рди (рджреЛрдиреЛрдВ рдорд╛рд░реНрдХрд░ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░) рдХреА рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдмрд╛рд╣рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдРрд╕рд╛ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ рдмрд╕ рдЗрд╕реЗ рдПрдХ рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╢реИрд▓реА рд╣реИ, рдЙрд╕рдХреЗ рд╕рд╛рде рдСрдмреНрдЬрд░реНрд╡реЗрдмрд▓ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рдП ...
@picosam
рдЖрдкрдХреЛ рдИрдПрд╕ 6 рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ:
_google-maps.config.ts_
export const markerIcon = {
url: '/assets/marker.png', // url
scaledSize: new google.maps.Size(35, 35)
};
const style = {
url: '/assets/cluster.png',
height: 40,
width: 40,
textColor: '#FFF',
textSize: 11,
backgroundPosition: 'center center'
};
export const options = {
imagePath: '/assets/cluster',
gridSize: 70,
styles: [style, style, style]
};
рдФрд░ рдлрд┐рд░ _marker-рдХреНрд▓рд╕реНрдЯрд░.ts_ рдореЗрдВ рдЙрди рдЪрд░ / рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗрдВ:
import { markerIcon, options } from './google-maps.config';
@andorfermichael рдбреИрдВрдХ рдиреЛрдЪ
рдмреЗрд╢рдХ рдореИрдВ рддрдм рдЖрдЧреЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЬрдЯрд┐рд▓ рдЖрдЗрдХрди рдФрд░ рд╕рднреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдирд╡реАрдирддрдо Google рдореИрдкреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд╕рд╣реА рд╣реИ?
@picosam рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ
@andorfermichael рдпрд╣ рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХрд╛рд░реНрдп рд╣реИ
рд▓реЗрдХрд┐рди рдореИрдВ рдереЛрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореБрдЭреЗ infowindow рдкрд░ рдПрдХ рдХреНрд▓рд┐рдХ рджреНрд╡рд╛рд░рд╛ рджреВрд╕рд░реЗ рдорд╛рд░реНрдЧ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди infowindow рдореЗрдВ рдПрдХ рдХреНрд▓рд┐рдХ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ "рдХреНрд▓реЛрдЬрдХреНрд▓рд┐рдХ" рдЗрд╡реЗрдВрдЯ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрд╣рд╛рдВ рдХреЛрдб рд╣реИ
infowindow.addListener('closeclick', function () { this.router.navigate(['/blabla', id]); });
рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ infowindow рдХреНрд▓реЛрдЬ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдИрд╡реЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдПрд░рд░ рдлреЗрдВрдХрддрд╛ рд╣реИ
this.router is undefined
_ рдмреЗрд╢рдХ рдХреЛрд░реНрд╕ рдореЗрдВ рд░рд╛рдЙрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрдВрдкреЛрд░реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд░рд╛рдЙрдЯрд░ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░_ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдФрд░ рддрдХрдиреАрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдореИрдВрдиреЗ рдореВрд▓ рдШрдЯрдХ рдФрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмреАрдЪ рдИрд╡реЗрдВрдЯрдорд┐рдЯрд░ (рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рддрдХрдиреАрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдореИрдВрдиреЗ рд╡рд░реНрдЧ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ @Output() eventEmitter = new EventEmitter()
рдХреЛ рд╢реАрд░реНрд╖ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛,
рдФрд░ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рдШрдЯрдирд╛,
infowindow.addListener('closeclick', function () { this.eventEmitter(id); });
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ infowindow рдХреНрд▓реЛрдЬ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдИрд╡реЗрдВрдЯ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдПрд░рд░ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИ
this.eventEmitter is undefined
рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
@ hossam-maurice рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ this
рджреНрд╡рд╛рд░рд╛ caued рд╣реИред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ this
рд╡рд╣ рддрддреНрд╡ рд╣реИ рдЬрд┐рд╕рдиреЗ рдШрдЯрдирд╛ рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ - infowindowред рдЙрд╕ рдХрд╛рд░рдг рд╕реЗ, ES6 / ECMAScript2015 рдореЗрдВ рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ this
рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрд╕рдкрд╛рд╕ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВред
рддреЛ infowindow.addListener('closeclick', () => { this.eventEmitter(id); });
рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЧреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдПрдХ рдирдЬрд╝рд░ рд╣реИ: ExploringJS - рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдПрдордбреАрдПрди - рдПрд░реЛ рдлрд╝рдВрдХреНрд╢рдВрд╕
@andorfermichael рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛: рдбреА hael
рд╣реИрд▓реЛ, рдореИрдВрдиреЗ Google рдбреНрд░рд╛рдЗрд╡ рд╕реЗ рдХрд╕реНрдЯрдо рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рдПрдХ рдорд╛рд░реНрдХрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЛрдбрд▓ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдХреНрд▓рд┐рдХ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдЕрд▓рд░реНрдЯ рджрд┐рдЦрд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЛрдбрд▓ рдХреЛ рдкреЙрдк рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
рдзрдиреНрдпрд╡рд╛рдж :)
рдирдорд╕реНрдХрд╛рд░, рдореИрдВрдиреЗ рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рдВрдбреЛ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИ?
@andorfermichael
рд╣рд╛рдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рд░рдВрдЧреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рдХрд┐ рд▓рд╛рд▓, рдкреАрд▓рд╛ рдФрд░ рдиреАрд▓рд╛ред
рд╕рдзрдиреНрдпрд╡рд╛рдж
@ vugar005 рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рд░рдВрдЧ рдмрджрд▓рдиреЗ рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдЖрдк рдмрд╕ рдЕрдкрдиреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЫрд╡рд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, Google рдХреА рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА m1 рд╕реЗ m5 (m = рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдирд╛рдо рдХреА рдкрд╛рдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрд╡рд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ рдЬреЛ рдкреНрд░рддрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд░реНрдХрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдореБрдЭреЗ рд╕рдЯреАрдХ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред Google рдбреЗрд╡рд▓рдкрд░ MapsDocumentation рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╛рдБрдЪ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╕реНрдЯрд░ 1 рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ 5 рдореЗрдВ рдирд╛рдо рджреЗрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкрддреНрддрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рд░рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ред
@AlexisNi рдЖрдк рдЬрдм рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рджрдмрдВрдЧ рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
google.maps.event.addListener(infoWindow, 'domready', function() {
document.getElementById('info-window-button').addEventListener('click', function(){
// run code here
});
});
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП Google рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореИрдкреНрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ
@joaolbaptista рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди Google рдореИрдк рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХрд╛ рдкреНрд░рд╢реНрди рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдСрдл-рдЯреЙрдкрд┐рдХ рд╣реИред рдореИрдВ рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ (рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд) stackoverflow рдореЗрдВ рдкреВрдЫрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡
@andorfermichael I рдХрд╛ рдЕрд░реНрде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдорд╛рд░реНрдХрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдЗрдХрди рдмрджрд▓рдирд╛ рд╣реИред рддреЛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреЗрд╢реА рдЧреВрдЧрд▓ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдгреАрдп рдирдХреНрд╢реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред
рдлрд┐рд░ рднреА рдзрдиреНрдпрд╡рд╛рдж
@ vugar005 рдпрд╣реА рдореИрдВрдиреЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреЗрд╢реА рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдПрдкреА рдХреЗрд╡рд▓ рдкрд╛рдВрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрди рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╕реНрдЯрд░ 1 (рдПрдо 1) 0 - 10, рдХреНрд▓рд╕реНрдЯрд░ 2 (рдПрдо 2) 11 - 100 рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдирдорд╕реНрдХрд╛рд░ @andorfermichael , рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдХреБрд▓ рдХреЗ рдЙрдиреНрдирдпрди рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ:
ReferenceError: MarkerClusterer is not defined
at SafeSubscriber._next (marker-clusterer.ts:106)
at SafeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:238)
at SafeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.SafeSubscriber.next (Subscriber.js:185)
at Subscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber._next (Subscriber.js:125)
at Subscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89)
at SkipWhileSubscriber.webpackJsonp.../../../../rxjs/operator/skipWhile.js.SkipWhileSubscriber._next (skipWhile.js:52)
at SkipWhileSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89)
at TakeSubscriber.webpackJsonp.../../../../rxjs/operator/take.js.TakeSubscriber._next (take.js:80)
at TakeSubscriber.webpackJsonp.../../../../rxjs/Subscriber.js.Subscriber.next (Subscriber.js:89)
at AsyncAction.webpackJsonp.../../../../rxjs/observable/IntervalObservable.js.IntervalObservable.dispatch (IntervalObservable.js:70)
@picosam рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рдкрд╣рд▓реЗ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдорд╛рд╕реНрдЯрд░рдХреНрд▓рд╕реНрдЯрд░ рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдирд╣реАрдВ рдХреА рдпрд╛ рдорд╛рд╕реНрдЯрд░рдХреНрд╕реНрдЯрд░ рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдорд╛рд╕реНрдЯрд░рдХреНрд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж @ vugar005 - рдмрд╛рдд рдпрд╣ рд╣реИ, рдореИрдВрдиреЗ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЙрд╕ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ рд╣реИ! .js
рдлрд╝рд╛рдЗрд▓ рдореЗрд░реЗ .angular-cli.json
рдФрд░ рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рдореЗрд░реЗ .ts
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ import * as ...
рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИред рдмреЗрд╢рдХ рдЬрдм рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ import
рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА рдХрд┐ .js
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ!
@picosam рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХреАред
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдирдП @ agm / js-рдорд╛рд░реНрдХрд░-рдХреНрд▓рд╕реНрдЯрд░ рдкреИрдХреЗрдЬ (# 1044) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ
@SebastianM рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХреЛрдгреАрдп-рдЧреВрдЧрд▓-рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд┐рдХ рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЙрд╕реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?
@andorfermichael рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдПрдкрд┐ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ Google рдирд╣реАрдВ рдорд┐рд▓рд╛ рдпрд╛ рдорд╛рд░реНрдХрд░ рдХреНрд▓рд╕реНрдЯрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЖрджрд┐ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?
@jpcode рд╣рд╛рдп рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдмрд╛рдХреА рд╢рд╛рдо рдХреЛ рднреА рдЬреЛ рд╣рдо рдПрдЧреНрдо-рдорд╛рд░реНрдХрд░ рдореЗрдВ рд╣реИрдВред рд╡рд╣рд╛рдБ рдПрдЬреАрдПрдо рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ? рдпрд╛ рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдПрдЧреНрдо-рдорд╛рд░реНрдХрд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП?
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ siegerx3 рдпрд╣ рд╕рд░рд▓ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдПрдХ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдПрдБ:
рдореИрдВрдиреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдореБрдЭреЗ рдХрд┐рд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдЖрдк рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрд┐рдирд╛ рдпрд╣ рдХрд╣реЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕ рдШрдЯрдХ рдХреЗ
directives
рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ / рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдмрд╕ рдЕрдкрдиреЗ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдореИрдк рдХреЗ рдЕрдВрджрд░ рдбрд╛рд▓реЗрдВ:Angular2 DI рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдХрд╛рд░рдг, рдЪреВрдВрдХрд┐ рд╣рдо рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ GoogleMAPAPIWrapper рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рддрдм рддрдХ рдШрдЯрдХ рдЯреНрд░реА рдКрдкрд░ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдПрдХ рди рдорд┐рд▓ рдЬрд╛рдПред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ 1 рдЪрд░рдг рд╣реИ рдФрд░ рд╣рдо GoogleMapsAPIWrapper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ
sebm-google-map
рдШрдЯрдХ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛