加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

链接Angular 4和OpenLayers 4

发布时间:2020-12-17 17:09:45 所属栏目:安全 来源:网络整理
导读:我有两个组成部分: 地图 控制 我希望控件组件上的按钮与地图交互.向地图添加交互的示例: 控件组件: HTML: button(click)=“add_a_place()”type =“button”添加地点 / button JS:add_a_place(){map.addInteraction(draw_interaction)} 地图组件: JS:
我有两个组成部分:

>地图
>控制

我希望控件组件上的按钮与地图交互.向地图添加交互的示例:

控件组件:

> HTML:< button(click)=“add_a_place()”type =“button”>添加地点< / button>
> JS:add_a_place(){map.addInteraction(draw_interaction)}

地图组件:

> JS:

var draw_interaction = new ol.interaction.Draw({
????????????source:vector_source,
????????????类型:“点”
?????});
????var map = new ol.Map({
??????目标:“地图”,
??????layers:[vector_layer],
??????view:new ol.View({
??????????中心:[0,0],
??????????zoom:2
????????})
????});

知道如何做/应该怎么做?

我在用:

> Angular 4.0.0
> OpenLayers 4.1.1

解决方法

以下是我为实现这一目标所做的工作:

使用组件交互(https://angular.io/guide/component-interaction),我在mapComponent中包含了controlComponent.使用eventEmitter,我告诉mapComponent要做什么(管理MapComponent中的map允许你使用不同的controlComponent).

MapComponent(HTML):

<app-control (add_a_place)="add_a_place($event)"> </app-control>

MapComponent(TS):

add_a_place(event) {
 var draw_interaction =  new ol.interaction.Draw({
        source: vector_source,type: "Point"
 });
   var map = new ol.Map({
   target: "map",layers: [vector_layer],view: new ol.View({
      center: [0,zoom: 2
      })
   });
   map.addInteraction(draw_interaction);
}

控件组件(HTML):

<button (click)="sendInfo()" type="button">Add a place</button>

JS:

export class VoterComponent {
// change 'any' to the desired type,this is optional
@Output() add_a_place= new EventEmitter<any>();

sendInfo() {
    // this will call MapComponent's add_a_place function
    this.add_a_place.emit('you can pass an argument of type "any" to the mapComponent,depending on the eventEmitter above,but this is optional');
}

如果您有疑问或我不清楚,请不要犹豫.

这是包含’angular-made’控件的逻辑,但您也可以添加openlayers的控件,参见:https://openlayers.org/en/latest/examples/custom-controls.html

但是你也可以在包含控件的overlayComponent中包含MapComponent,在这种情况下你必须反转组件交互逻辑(如果不清楚则忽略它).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读