我需要创建一个 Controller ,该 Controller 具有管理开放层的所有标记的服务。
我认为有些应用程序基于 Angular 并也使用开放层。 但是我找不到真实的例子。
有人可以帮我找到这种方法的好例子吗?
最佳答案
我认为 Azimuth 项目是 Angular 和开放层(或传单)最先进的集成。
但是...创建显示 map 并监听范围对象的更改以便将它们绘制在 map 上的自定义指令实际上并不难。这是我为我的另一个 SO 问题创建的 plukr,但它向您展示了如何创建基本 map :http://plnkr.co/edit/0tXsWS0DXtl37jV8GywI?p=preview
app.directive('tchOlMap', function () {
var MAP_DOM_ELEMENT_ID = 'tchMap';
return {
restrict: 'E',
replace: true,
template: '<div id="' + MAP_DOM_ELEMENT_ID + '" class="full-height"></div>',
link: function postLink(scope, element, attrs) {
var map = new OpenLayers.Map(MAP_DOM_ELEMENT_ID);
map.addLayer(new OpenLayers.Layer.OSM());
map.setCenter(new OpenLayers.LonLat(3, 47).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913")), 5);
}
}
});
您只需在链接函数中观察范围对象,然后相应地在 map 上绘制即可。
关于angularjs - 具有开放层的 Angular JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283709/