Http 如何使用observable.map和.subscribe处理数据

Http 如何使用observable.map和.subscribe处理数据,http,angular,reactive-programming,rxjs,Http,Angular,Reactive Programming,Rxjs,我正在从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 => {

我正在从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”(可观察?)中放置一个函数,该函数将获得所有变量, 并创建标记选项,我将其放入数组中

let markerOptions: GoogleMapsMarkerOptions = {
            position: latlng,
            title: 'id'
};

从我在google上看到的内容来看,大多数人更喜欢将对象放在一个私有变量中,我假设在另一个函数中处理它

您需要做的是将从服务器检索到的数组映射到GoogleMapsMarketropions列表。所以,(我不知道GoogleMapsMarketropions的构造器)比如:

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或下划线