λΉλκΈ° λ°μ΄ν°λ₯Ό json νμΌμμλ‘λνλ μλΉμ€κ° μμ΅λλ€. * ngForλ reture λ λͺ¨λ λ°μ΄ν°μ λν΄ sebm-google-map-markerλ₯Ό μμ±νμ§λ§ sebm-google-mapμ μλ‘ μΆκ° λ λ§μ»€λ₯Όλ‘λνμ§ μμ΅λλ€.
marker.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
}
]
}
service.ts
getmockStores() {
return this._http.get(CONFIG.baseUrls.mockstoreSelector)
.map((response: Response) => <marker[]>response.json().data)
.catch(this._exceptionService.catchBadResponse)
}
component.ts
`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>
μμ λ¬Έμ μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?
hey @ krunal039- λΉλκΈ° μμ
μ΄ μλ£λ ν <sebm-google-map-marker>
μ΄ DOMμ μλμ§ νμΈν μ μμ΅λκΉ? κ°μ¬!
μλ νμΈμ Sebastian, λ°©κΈ angular2λ₯Ό μ΅μ μΌλ‘ μ λ°μ΄νΈνμΌλ©° μλͺ»λ μ½λμΈμ§ λλ μ΅κ·€λ¬μΈμ§ νμ€νμ§ μμ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. νμ§λ§ κ³ μ λμ΄ μμ΅λλ€. λͺ¨λ λ§μ»€λ₯Ό κΈ°λ°μΌλ‘ μ€ μλμ μ€μ νλ μ΅μ λ μμ΅λκΉ?
@ krunal039 μλμ, μ§κΈμ λΆκ°λ₯ν©λλ€-μ£μ‘ν©λλ€. νμν κ²½μ° μ λ¬Έμ λ₯Όμ¬μμμ€. API μΈλΆ μ¬νμ λν΄ λ Όμ ν μ μμ΅λλ€. κ°μ¬!
λΏ‘ λΉ΅λ¨
μ΄ νΈλ₯Ό λ€μ μ΄κ³ μΆμ΅λλ€. λλ angular2 rc.4
(μ§κΈκΉμ§ κ°μ₯ μ΅κ·Όμ angular2 릴리μ€)λ₯Ό μ¬μ©νκ³ μμΌλ©°μ΄ λ¬Έμ μ μ§λ©΄ ν΄ μμ΅λλ€. λ§μ»€κ° DOMμλ‘λλμ§λ§μ§λ μΊλ²μ€μ νμλμ§ μμ΅λλ€.
<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
λ§μ§λ§μΌλ‘ μμ λ΄μμμ€.
λ΄ μλ리μ€μμλ JSONμΌλ‘ μ 곡λλ Http μλΉμ€μμ λ°μ΄ν°λ₯Ό μ»μμ΅λλ€. for 루νμμ ν΄λΉ λ°μ΄ν°μ lat λ° lng νλλ₯Ό λ°μΈλ©νμ΅λλ€. μλνμ§ μμμ΅λλ€. λ§μ»€κ° DOMμμ μμ±λμμ§λ§ μΊλ²μ€μ νμλμ§ μμμ΅λλ€.
μ΄κ²μ΄ λ΄κ° κ·Έκ²μ μμ λΈ λ°©λ²μ λλ€.
this.observable = this.gisDataService.getEntities (dcode);
this.observable.subscribe (
data => this.data = data.map ((entity : Entity) => new Entity (entity.uid, entity.alpha, entity.lat, entity.lng, entity.type, entity.tag, entity.addr, entity .desc, entity.zcode, entity.rcode, entity.dcode)),
μ€λ₯ => κ²½κ³ (μ€λ₯),
() => this.pushMarkers () // λμ ν¨μλ₯Ό νΈμΆνλ κ³³μ
λλ€.
);
this.data.forEach (element => {
this.markers.push ({
lat : Number (element.lat),
lng : Number (element.lng),
label : element.tag,
draggable : false
})
console.log ( "pushed"+ element.lat + ","+ element.lng);
});
μ°Έκ³ : JSONμΌλ‘ λ°μ΄ν°λ₯Όλ°μ λ JSONμ ν΄λμ€μ 맀ννλλΌλ μ«μλ‘ λ³νλμ§ μλλ€λ κ²μ μμ λμ΅λλ€. κ·Έλ¬λ Pushing (pushMarker () ν¨μμμ λͺ μ μ μΌλ‘ lat / lngλ₯Ό Number ()λ‘ λ³νν΄μΌν©λλ€.)
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
νΈμ λ΄μ κ°κΈ° Number ()λ‘ λͺ μ μ μΌλ‘ λ³νν΄μΌνμ΅λλ€. κ°μ¬ν©λλ€ :)
κ°μ¬ν©λλ€ @nileshmahant κ° λ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€!
λ³ν λ κ°μ μ 곡νλ λμ κ΅¬μ± μμμμ λ³νμ κ°μ Έ μ€κΈ° μν΄μ΄ νλͺ©μ λ€μ μ΄κ³ μΆμ΅λλ€.
λλ₯Ό μν΄ +1, μ΄κ²μ μμλ΄λ λ° μκ°μ΄ κ±Έλ Έκ³ JSONμμ λ§μ»€λ₯Όλ‘λνλ μ¬μ© μ¬λ‘λ λ§€μ° λ Όλ¦¬μ μ λλ€.
λλ λ°©κΈ μ΄κ²μ λ§λ¬κ³ λ€λ₯Έ λκ΅°κ°κ° κ·Έκ²μ λΆλͺ ν κ²½μ°λ₯Ό λλΉνμ¬ λ΄ μμ μ 곡μ ν κ²μ΄λΌκ³ μκ°νμ΅λλ€.
λ΄ ts νμΌμμ λ¬Έμμ΄μ μ«μλ‘ λ³ννλ κ°λ¨ν λ°©λ²μ μΆκ°νμ΅λλ€.
private convertStringToNumber(value: string): number {
return +value;
}
κ·Έλ° λ€μ htmlμμ μλ / κ²½λλ₯Όμ΄ λ©μλμ μ λ¬ν©λλ€.
<sebm-google-map-marker *ngFor="let location of clientLocations" [latitude]="convertStringToNumber(location.latitude)" [longitude]="convertStringToNumber(location.longitude)"></sebm-google-map-marker>
μ’μ!
κ°μΈ κΈ°λ₯ λμ μ νμ΄νλ₯Ό μμ±νμ§ μλ κ²μ΄ μ’μ΅λλ€.
μ΄ μμ
μ μν. ν¨μ¬ λ λ©μ§κ³ ν΄λ κ°λ₯ν΄ λ³΄μΌ κ²μ
λλ€.
λν λ λ§μ μΌμ΄ μμ΅λλ€.
μνλ κ²½μ° μμ λ₯Ό μ 곡 ν μ μμ΅λλ€. :-)
2017 λ 4 μ 1 μΌ 02:12μ Austin LaRue [email protected] μ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
λλ λ°©κΈ μ΄κ²μ λ§λ¬κ³ λ§μΌμ λλΉνμ¬ λ΄ μμ μ 곡μ ν κ²μ΄λΌκ³ μκ°νμ΅λλ€.
λ€λ₯Έ μ¬λμ΄ κ·Έκ²μ λΆλͺμΉ©λλ€.λ΄ ts νμΌμμ λ¬Έμμ΄μ μ«μλ‘ λ³ννλ κ°λ¨ν λ°©λ²μ μΆκ°νμ΅λλ€.
κ°μΈ convertStringToNumber (κ° : λ¬Έμμ΄) : μ«μ {
λ°ν + κ°;
}κ·Έλ° λ€μ htmlμμ μλ / κ²½λλ₯Όμ΄ λ©μλμ μ λ¬ν©λλ€.
[latitude] = "convertStringToNumber (location.latitude)"[κ²½λ] = "
convertStringToNumber (location.longitude) ">β
μ΄ μ€λ λλ₯Ό ꡬλ νκΈ° λλ¬Έμμ΄ λ©μμ§κ° μ μ‘λμμ΅λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ³ GitHubμμ νμΈνμΈμ.
https://github.com/SebastianM/angular2-google-maps/issues/330#issuecomment-290757110 ,
λλ μ€λ λ μμκ±°
https://github.com/notifications/unsubscribe-auth/AY4FmON0vwkqtvbC3qlBK1E6SQQQsAr2ks5rrSXggaJpZM4IaCkp
.
μμ° λλμ΄ λ¬Έμ λ₯Ό λ°κ²¬νκΈ° μ μ ν μκ° μ΄μμ΄ λ¬Έμ μ λν΄ λ¨Έλ¦¬λ₯Ό μΉκ³ μμμ΅λλ€. μ΄κ²μ λλ₯Ό μν΄ μλ²½νκ² μλνμ΅λλ€.)
μΌλ°μ μΌλ‘ λ΄ κ²½νμ λ°λ₯΄λ©΄ agm λ§μ»€κ° DOMμ νμλμ§λ§ νμλμ§ μλ κ²½μ° ngForμ μλͺ»λ κ°μ²΄ μ νμ μ 곡νμ μ μμ΅λλ€ (μμμ μΈκΈ ν μ«μ μ νκ³Ό κ°μ λΆμ μ ν μ ν λλ μλ λ° κ²½λλ₯Ό μ ν ν¬ν¨νμ§ μλ μ ν). λ΄ κ²½μ°μλ€). λ§μ»€ λ°°μ΄λ‘ 보λ΄λ λ΄μ©μ λ€μ νμΈνμμμ€.
μ΄ λ¬Έμ λ₯Ό λ€μ μ΄κ³ μΆμ΅λλ€.
μ¬μ©μκ°μ§λμ ν μ§μ μ ν΄λ¦νλ©΄ 미리 μ μ λ λ§μ»€λ₯Ό νμνκ³ νλ©΄μ λ§μ»€λ₯Ό μμ±νλ €κ³ νμ§λ§ 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>
λ΄ service.ts νμΌμ λ§μ»€λ₯Ό μΆκ°νκ³ νμνλ €λ©΄
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
κ°μ₯ μ μ©ν λκΈ
λλ λ°©κΈ μ΄κ²μ λ§λ¬κ³ λ€λ₯Έ λκ΅°κ°κ° κ·Έκ²μ λΆλͺ ν κ²½μ°λ₯Ό λλΉνμ¬ λ΄ μμ μ 곡μ ν κ²μ΄λΌκ³ μκ°νμ΅λλ€.
λ΄ ts νμΌμμ λ¬Έμμ΄μ μ«μλ‘ λ³ννλ κ°λ¨ν λ°©λ²μ μΆκ°νμ΅λλ€.
κ·Έλ° λ€μ htmlμμ μλ / κ²½λλ₯Όμ΄ λ©μλμ μ λ¬ν©λλ€.
<sebm-google-map-marker *ngFor="let location of clientLocations" [latitude]="convertStringToNumber(location.latitude)" [longitude]="convertStringToNumber(location.longitude)"></sebm-google-map-marker>