Ember.js Mapbox.js&;余烬-回收及;在组件中修改映射
我已经在我的Ember.js Mapbox.js&;余烬-回收及;在组件中修改映射,ember.js,ember-cli,mapbox,Ember.js,Ember Cli,Mapbox,我已经在我的ember cli应用程序中为mapbox映射创建了一个组件 我在组件中的didInsertElement回调中添加了映射和一些标记,并希望添加一个观察者,随着底层数据的实时更改更新标记 然而,我不知道如何访问我的观察者内部的地图。我不希望每次我的标记改变时都重新绘制整个地图 这是我的密码: import Ember from 'ember'; import ENV from 'ember-geofire-demo/config/environment'; export defau
ember cli
应用程序中为mapbox映射创建了一个组件
我在组件中的didInsertElement
回调中添加了映射和一些标记,并希望添加一个观察者,随着底层数据的实时更改更新标记
然而,我不知道如何访问我的观察者内部的地图。我不希望每次我的标记改变时都重新绘制整个地图
这是我的密码:
import Ember from 'ember';
import ENV from 'ember-geofire-demo/config/environment';
export default Ember.Component.extend({
attributeBindings: ['id'],
id: 'map',
// this is what doesn't work
markersObserver: function() {
// retrieve the map - ??
// retrieve the markerLayer on the map - ??
var markerLayer = // ...
// regenerate the geoJSON with the new marker positions
var geoJSON = generateGeoJSON(markers);
// re-set the markerLayer's geoJSON
markerLayer.setGeoJSON(geoJSON);
}.observes('markers'),
// works! adds the map and markers as expected
didInsertElement: function() {
// create the map
L.mapbox.accessToken = ENV.mapboxAccessToken;
var map = L.mapbox.map('map', 'hchood.blahblah');
// add a featureLayer to hold all the markers
var markerLayer = L.mapbox.featureLayer().addTo(map);
// generate GeoJSON for a series of points to add onto the markerLayer
var markers = this.get('markers');
var features = [];
markers.map(function(marker) {
var latitude = marker.get('vehicle_lat');
var longitude = marker.get('vehicle_lon');
features.push({
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [longitude, latitude]
},
properties: {
'marker-size': 'large',
'marker-symbol': 'rail-light',
'marker-color': '#f86767'
}
});
});
var geoJSON = {
type: 'FeatureCollection',
features: features
};
// set the markers as the GeoJSON on the markerLayer
markerLayer.setGeoJSON(geoJSON);
}
});
非常感谢您的任何建议 假设
markers.map
返回map对象,最简单的方法可能是通过调用this.set('map',)
将该对象添加到组件中,并通过this.get('map')
在您的观察者中检索该对象。为什么不将贴图保存为组件的属性?顺便说一句。你看过余烬传单()吗?我正在使用地图盒地图,没有问题。