Angular-google-maps: Sebm-google-map-рдорд╛рд░реНрдХрд░ рдХреЛ * ngFor рдХреЗ рд╕рд╛рде рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ Async

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдордИ 2016  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SebastianM/angular-google-maps

рдореЗрд░реЗ рдкрд╛рд╕ async рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП json рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рд╣реИред * ngFor рд╕рднреА рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП sebm-google-map-рдорд╛рд░реНрдХрд░ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди sebm-google-map рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рдорд╛рд░реНрдХрд░ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдорд╛рд░реНрдХрд░ред json
{ "data" : [ { "lat": 51.673858, "lng": 7.815982, "label": "A", "draggable": true }, { "lat": 51.373858, "lng": 7.215982, "label": "B", "draggable": false }, { "lat": 51.723858, "lng": 7.895982, "label": "C", "draggable": true } ] }

рд╕реЗрд╡рд╛

getmockStores() { return this._http.get(CONFIG.baseUrls.mockstoreSelector) .map((response: Response) => <marker[]>response.json().data) .catch(this._exceptionService.catchBadResponse) }

рдШрдЯрдХ
`getMockMarkers () {

this.mockStores = this._storeService.getmockStores()
  .catch(e => {
    this._toastService.activate(`${e}`);
    return Observable.of();
  })

})
} `

.component.html
<sebm-google-map [latitude]="lat" [longitude]="lng" [zoom]="zoom" [disableDefaultUI]="false"> <sebm-google-map-marker *ngFor="#m of mockStores" [latitude]="m.lat" [longitude]="m.lng" [label]="m.label" [markerDraggable]="m.draggable" (dragEnd)="markerDragEnd(m, $event)"> </sebm-google-map-marker> </sebm-google-map>

discussion / question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдмрд╕ рдЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдХреЛрдИ рдФрд░ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдЧрд╛ред

рдЕрдкрдиреА ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА:

private convertStringToNumber(value: string): number {
        return +value;
    }

рдлрд┐рд░ html рдореЗрдВ рдореИрдВ рдЕрднреА рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ lat / long рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдБ:

<sebm-google-map-marker *ngFor="let location of clientLocations" [latitude]="convertStringToNumber(location.latitude)" [longitude]="convertStringToNumber(location.longitude)"></sebm-google-map-marker>

рд╕рднреА 20 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЙрдкрд░реЛрдХреНрдд рдореБрджреНрджреЗ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрджреНрдпрддрди рдХрд░реЗрдВ?

рдЕрд░реЗ @ krunal039 - рдХреНрдпрд╛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ async рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж <sebm-google-map-marker> DOM рдореЗрдВ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп рд╕реЗрдмрд╕реНрдЯрд┐рдпрди, рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЕрдкрдиреЗ рдХреЛрдгреАрдп 2 рдХреЛ рдирд╡реАрдирддрдо рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдмреБрд░рд╛ рдХреЛрдб рдпрд╛ рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рдХреБрдЫ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рддрдп рд╣реИред рдХреНрдпрд╛ рд╕рднреА рдорд╛рд░реНрдХрд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╝реВрдо рдСрдЯреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИрдВ?

@ krunal039 рдирд╣реАрдВ, рдЕрднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ - рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдкреАрдЖрдИ рд╡рд┐рд╡рд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!

@ рд╕рдмрд╕реНрдЯрд┐рдпрдирдо
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ angular2 rc.4 (рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ angular2 рд░рд┐рд▓реАрдЬрд╝) рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдорд╛рд░реНрдХрд░ рдбреЛрдо рдкрд░ рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдирдХреНрд╢реЗ рдХреИрдирд╡рд╛рд╕ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред

  <sebm-google-map 
      [latitude]="map_focus_lat"
      [longitude]="map_focus_lng"
      [zoom]="11">

    <sebm-google-map-marker *ngFor="let center of centers" 
    [latitude]="center.latitude" 
    [longitude]="center.longitude">
    </sebm-google-map-marker>
  </sebm-google-map>

centers рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред centers рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреЗрдВрджреНрд░реЛрдВ рдХреЗ рд╕рд╛рде *ngFor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп HTML рддрддреНрд╡ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреЗрдВрджреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ DOM рдореЗрдВ рд╕рд╣реА рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ angular.rc4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЖрдХрд╛рд░ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдк рдореБрдЭреЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

@SebastionM рдореИрдВ rc4 рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред рдорд╛рд░реНрдХрд░ рдирдХреНрд╢реЗ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдорд╛рд░реНрдХрд░ рдбреЛрдо рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?

рдпрд╣рд╛рдБ рднреА рд╡рд╣реА рдореБрджреНрджрд╛ред рдХреЛрдгреАрдп rc3 рдкрд░

рдЕрдВрдд рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред
рдореЗрд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдореБрдЭреЗ Http рд╕реЗрд╡рд╛ рдХрд╛ рдПрдХ рдбреЗрдЯрд╛ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ рдЬреЛ JSON рдореЗрдВ рдЖ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдЙрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд╛рдЯ рдФрд░ рд▓реИрдВрдЧ рдлреАрд▓реНрдб рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред DOM рдореЗрдВ рдорд╛рд░реНрдХрд░ рдмрди рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рдереЗред

рдЗрд╕ рддрд░рд╣ рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛:

  1. рдорд╛рд░реНрдХрд░ рдирд╛рдо рдХрд╛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛:
    рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд╛рд░реНрдХрд░ {
    lat: рд╕рдВрдЦреНрдпрд╛;
    lng: рд╕рдВрдЦреНрдпрд╛;
    рд▓реЗрдмрд▓ ;: рд╕реНрдЯреНрд░рд┐рдВрдЧ;
    рдЦреАрдВрдЪрдиреЗ рдпреЛрдЧреНрдп: рдмреВрд▓рд┐рдпрди;
    }
  2. рдЬрдм рдореЗрд░рд╛ рдбреЗрдЯрд╛ рдЕрд╡рд▓реЛрдХрдиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рджрд╕реНрдпрддрд╛ рд╡рд┐рдзрд┐ рдкрд░, рдореИрдВ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ pushMarker () рдХрд╣рддрд╛ рд╣реВрдВ рдЬрдм рдбреЗрдЯрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:

this.observable = this.gisDataService.getEntities (dcode);
this.observable.subscribe (
data => this.data = data.map ((рдПрдВрдЯрд┐рдЯреА: рдПрдВрдЯрд┐рдЯреА) => рдирдпрд╛ рдПрдВрдЯрд┐рдЯреА (рдПрдВрдЯрд┐рдЯреАред рд▓реНрдпреВрдб, рдПрдВрдЯрд┐рдЯреАред рдЬрд╛рд▓рдкрд╛, рдПрдВрдЯрд┐рдЯреАред рд▓рдЯ, рдПрдВрдЯрд┐рдЯреАред рдПрд▓рдПрдирдЬреА, рдпреВрдирд┐рдЯ.рдЯрд╛рдЗрдк, рдПрдВрдЯрд┐рдЯреА.рдЯреИрдЧ, рдПрдВрдЯрд┐рдЯреА.рдЖрдзрд╛рд░) .desc, unit.zcode, unit.rcode, unit.dcode)),
рддреНрд░реБрдЯрд┐ => рдЪреЗрддрд╛рд╡рдиреА (рддреНрд░реБрдЯрд┐),
() => this.pushMarkers () // рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдореИрдВ рдлрд╝рд┐рдирд┐рд╢ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реВрдВ
);

  1. рдлрд┐рд░ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдореЗрдВ рд▓реВрдк рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдорд╛рд░реНрдХрд░ рд╕рд░рдгреА рдореЗрдВ рдзрдХреЗрд▓рд╛:

this.data.forEach (рддрддреНрд╡ => {
this.markers.push ({
lat: рд╕рдВрдЦреНрдпрд╛ (рдПрд▓рд┐рдореЗрдВрдЯ.рд▓реИрдЯ),
lng: рд╕рдВрдЦреНрдпрд╛ (element.lng),
рд▓реЗрдмрд▓: element.tag,
рдЦреАрдВрдЪрдиреЗ рдпреЛрдЧреНрдп: рдЕрд╕рддреНрдп
})
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ("рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛" + рддрддреНрд╡.рд▓рд╛рдЯ + "," + рддрддреНрд╡.рд▓рдВрдЧ);
};

рдиреЛрдЯ: рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЬрдм JSON рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк JSON рдХреЛ рдПрдХ рдХрдХреНрд╖рд╛ рдореЗрдВ рдореИрдк рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛)ред рд▓реЗрдХрд┐рди рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд╕рдордп (pushMarker () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ lat / lng рдХреЛ рдирдВрдмрд░ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ ()ред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреАред

@ рдирд┐рд▓реЗрд╢рдорд╣рдВрдд рд╕реБрдкрд░! рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛ () рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдзрдиреНрдпрд╡рд╛рдж :)

рдзрдиреНрдпрд╡рд╛рдж @nileshmahant рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреА!

рдореИрдВ рдЗрд╕ рдПрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдШрдЯрдХ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдорд╛рди рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП

рдореЗрд░реЗ рд▓рд┐рдП +1, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛ рдФрд░ JSON рд╕реЗ рдорд╛рд░реНрдХрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ-рдХреЗрд╕ рдПрдХ рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рд╣реИ

рдореИрдВ рдмрд╕ рдЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдХреЛрдИ рдФрд░ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдЧрд╛ред

рдЕрдкрдиреА ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА:

private convertStringToNumber(value: string): number {
        return +value;
    }

рдлрд┐рд░ html рдореЗрдВ рдореИрдВ рдЕрднреА рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ lat / long рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдБ:

<sebm-google-map-marker *ngFor="let location of clientLocations" [latitude]="convertStringToNumber(location.latitude)" [longitude]="convertStringToNumber(location.longitude)"></sebm-google-map-marker>

рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛!

рдХреНрдпрд╛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рдЬреА рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдмрдЬрд╛рдп, рдХреНрдпреЛрдВ рди рдПрдХ рдкрд╛рдЗрдк рдмрдирд╛рдпрд╛ рдЬрд╛рдП
рдЗрд╕реЗ рдХрд░реЗрдВред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреНрдпрд╛рджрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рдЕрдЧрд░ рдЖрдк рдПрдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ :-)

1 рдЕрдкреНрд░реИрд▓ 2017 рдХреЛ 02:12 рдмрдЬреЗ, Austin LaRue рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВ рдмрд╕ рдЗрд╕ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореИрдВ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдкрдирд╛ рдХрд╛рдо рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛
рдХреЛрдИ рдФрд░ рдЗрд╕рдореЗрдВ рднрд╛рдЧрддрд╛ рд╣реИред

рдЕрдкрдиреА ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реА:

рдирд┐рдЬреА ConvertStringToNumber (рдорд╛рди: рд╕реНрдЯреНрд░рд┐рдВрдЧ): рд╕рдВрдЦреНрдпрд╛ {
рд╡рд╛рдкрд╕реА + рдореВрд▓реНрдп;
}

рдлрд┐рд░ html рдореЗрдВ рдореИрдВ рдЕрднреА рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ lat / long рдореЗрдВ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдБ:

[рдЕрдХреНрд╖рд╛рдВрд╢] = "ConvertStringToNumber (рд╕реНрдерд╛рдиред рд╕реНрдерд╛рди)" [рджреЗрд╢рд╛рдВрддрд░] = "
ConvertStringToNumber (рд╕реНрдерд╛рдиред рджреЗрд╢рд╛рдВрддрд░) ">

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/SebastianM/angular2-google-maps/issues/330#issuecomment-290757110 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AY4FmON0vwkqtvbC3qlBK1E6SQQQAA2ks5rrSXggaJpMM4IaCkp
ред

рд╡рд╛рд╣, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдЕрдкрдирд╛ рд╕рд┐рд░ рдкреАрдЯрддрд╛ рд░рд╣рд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо :)

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдПрдЧ-рдорд╛рд░реНрдХрд░ рдбреЛрдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрд┐рдЦрд╛рдП рдирд╣реАрдВ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдПрдирдЬреАрдлрд╝реЛрд░ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдПрдХ рдЧрд▓рдд рд╡рд╕реНрддреБ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рд╣реИ (рдпрд╛ рддреЛ рдЕрдиреБрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдирдВрдмрд░ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХреБрдЫ рдЬрд┐рд╕рдореЗрдВ рдЕрд╡реНрдпрдХреНрдд рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рди рд╣реЛред рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рдерд╛)ред рдЖрдк рдорд╛рд░реНрдХрд░ рд╕рд░рдгреА рдкрд░ рдХреНрдпрд╛ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдореИрдВ рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рд╕реНрдХреНрд░реАрди рдкрд░ рдорд╛рд░реНрдХрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ngfor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдорд╛рд░реНрдХрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдореЗрд░реА HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ

<sebm-google-map
          [latitude]="lat"
          [longitude]="lng"
          [zoom]="zoom"
          [disableDefaultUI]= false
          [zoomControl]= true
          (mapClick)="mapClicked($event)">

          <sebm-google-map-marker
            *ngFor="let m of markers; let i = index"
            (markerClick)="clickedMarker(m,i)"
            [latitude]="convertStringToNumber(m.lat)"
            [longitude]="convertStringToNumber(m.lng)"
            [markerDraggable]="m.draggable"
            (dragEnd)="markerDragEnd(m, $event)"
          >

            <sebm-google-map-info-window>
              <strong>{{m.name}}</strong>
            </sebm-google-map-info-window>
          </sebm-google-map-marker>
        </sebm-google-map>

рдФрд░ рдореЗрд░реА рд╕рд░реНрд╡рд┐рд╕.рдЯреАрдПрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ

  getMarkers(){
    var markers = JSON.parse(localStorage.getItem('markers'));
    return markers;
  }

  addMarker(newMarker){
    //fetch marker that are already there
    var markers = JSON.parse(localStorage.getItem('markers'));

    // Push to array
    markers.push(newMarker);

    //set markers again
    localStorage.setItem('markers',JSON.stringify(markers))
  }


рдореИрдВ рднреА lat рдФрд░ long рдорд╛рди string рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬ рд░рд╣рд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ DecimalPipe рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛:

... *ngFor="let pin of pins" [latitude]="pin.lat|number:'1.0-8'" ...

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ: https://angular.io/api/common/DecimalPipe

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕