我正在从我的API中重新获取一些数据:
[
{
"id": 1,
"lat": 50.607084,
"lng": 3.043099
},
{
"id": 2,
"lat": 50.607084,
"lng": 3.043099
},
]
我只想通过反应式编程处理数据,以便在我的请求中创建谷歌地图标记。
this.http.get('http://api/getData')
.map(res => {
return res.json()
})
.subscribe(
data => {
console.log(data);
});
当我这样做时,我得到了很多物体,我无法找到记录或仅隔离纬度的方法(我得到“未知”)。
我希望能够将一个函数放在“.map”(可观察的?)中,它将获得所有变量, 并创建我将放入数组的markersOptions。
let markerOptions: GoogleMapsMarkerOptions = {
position: latlng,
title: 'id'
};
从我在谷歌上看到过的,大多数人更喜欢把对象放在一个私有变量中,我假设在另一个函数中处理它。
答案 0 :(得分:1)
您需要做的是将从服务器检索到的数组映射到GoogleMapsMarkerOptions列表。所以,(我不知道GoogleMapsMarkerOptions的构造函数)类似于:
this.http.get('http://api/getData')
.map(res => {
return res.json().map(x => {
return new GoogleMapsMarkerOptions({
title: x.it,
position: new GoogleMapsLatLng(x.lat, x.lng)
});
});
})
.subscribe(
data => {
console.log(data);
});
第二张地图是标准的javascript方法(不是rxjs)。如果您需要支持旧浏览器,可以使用lodash或下划线。