Google maps 单击“角度2”时将标记添加到google地图
我正在尝试构建一个angular 2应用程序,当我点击地图时,它会添加一个标记。 这是我的代码:Google maps 单击“角度2”时将标记添加到google地图,google-maps,angular,typescript,google-maps-markers,marker,Google Maps,Angular,Typescript,Google Maps Markers,Marker,我正在尝试构建一个angular 2应用程序,当我点击地图时,它会添加一个标记。 这是我的代码: <sebm-google-map (mapClick)="getPosition($event)" [latitude]="lat" [longitude]="lng" [zoom]="zoom" [backgroundColor]="backgroundColor" style="margin-bottom:900px"> <sebm-google-map-marker *n
<sebm-google-map (mapClick)="getPosition($event)" [latitude]="lat" [longitude]="lng" [zoom]="zoom" [backgroundColor]="backgroundColor" style="margin-bottom:900px">
<sebm-google-map-marker *ngFor=" let post of posts" [latitude]="post.lapti" [longitude]="post.longi" ></sebm-google-map-marker>
</sebm-google-map>
任何解决方案?幸运的是,提供的plunker示例已经实现了确切的功能: 普朗克: 这是一个静态副本,以防plunker不再存在:
@Component({
selector: 'my-app',
styles: [`
.sebm-google-map-container {
height: 300px;
}
`],
template: `
<sebm-google-map
[latitude]="lat"
[longitude]="lng"
[zoom]="zoom"
[disableDefaultUI]="false"
[zoomControl]="false"
(mapClick)="mapClicked($event)">
<sebm-google-map-marker
*ngFor="let m of markers; let i = index"
(markerClick)="clickedMarker(m.label, i)"
[latitude]="m.lat"
[longitude]="m.lng"
[label]="m.label"
[markerDraggable]="m.draggable"
(dragEnd)="markerDragEnd(m, $event)">
<sebm-google-map-info-window>
<strong>InfoWindow content</strong>
</sebm-google-map-info-window>
</sebm-google-map-marker>
<sebm-google-map-circle [latitude]="lat + 0.3" [longitude]="lng"
[radius]="5000"
[fillColor]="'red'"
[circleDraggable]="true"
[editable]="true">
</sebm-google-map-circle>
</sebm-google-map>
`})
export class App {
// google maps zoom level
zoom: number = 8;
// initial center position for the map
lat: number = 51.673858;
lng: number = 7.815982;
clickedMarker(label: string, index: number) {
console.log(`clicked the marker: ${label || index}`)
}
mapClicked($event: MouseEvent) {
this.markers.push({
lat: $event.coords.lat,
lng: $event.coords.lng
});
}
markerDragEnd(m: marker, $event: MouseEvent) {
console.log('dragEnd', m, $event);
}
markers: marker[] = [
{
lat: 51.673858,
lng: 7.815982,
label: 'A',
draggable: true
},
{
lat: 51.373858,
lng: 7.215982,
label: 'B',
draggable: false
},
{
lat: 51.723858,
lng: 7.895982,
label: 'C',
draggable: true
}
]
}
// just an interface for type safety.
interface marker {
lat: number;
lng: number;
label?: string;
draggable: boolean;
}
@组件({
选择器:“我的应用程序”,
风格:[`
.sebm谷歌地图容器{
高度:300px;
}
`],
模板:`
信息窗口内容
`})
导出类应用程序{
//谷歌地图缩放级别
缩放:数字=8;
//地图的初始中心位置
lat:数字=51.673858;
液化天然气:数量=7.815982;
clickedMarker(标签:字符串,索引:编号){
log(`clicked the marker:${label | | index}`)
}
mapClicked($event:MouseEvent){
这个,推({
lat:$event.coords.lat,
液化天然气:$event.coords.lng
});
}
markerDragEnd(m:marker$event:MouseEvent){
console.log('dragEnd',m$事件);
}
标记:标记[]=[
{
拉脱维亚:51.673858,
液化天然气:7.815982,
标签:“A”,
德拉格布尔:是的
},
{
拉脱维亚:51.373858,
液化天然气:7.215982,
标签:‘B’,
可拖动:错误
},
{
拉脱维亚:51.723858,
液化天然气:7.895982,
标签:‘C’,
德拉格布尔:是的
}
]
}
//只是一个类型安全的接口。
接口标记{
lat:数字;
液化天然气:数量;
标签?:字符串;
可拖动:布尔型;
}
幸运的是,提供的plunker示例已经实现了确切的功能:
普朗克:
这是一个静态副本,以防plunker不再存在:
@Component({
selector: 'my-app',
styles: [`
.sebm-google-map-container {
height: 300px;
}
`],
template: `
<sebm-google-map
[latitude]="lat"
[longitude]="lng"
[zoom]="zoom"
[disableDefaultUI]="false"
[zoomControl]="false"
(mapClick)="mapClicked($event)">
<sebm-google-map-marker
*ngFor="let m of markers; let i = index"
(markerClick)="clickedMarker(m.label, i)"
[latitude]="m.lat"
[longitude]="m.lng"
[label]="m.label"
[markerDraggable]="m.draggable"
(dragEnd)="markerDragEnd(m, $event)">
<sebm-google-map-info-window>
<strong>InfoWindow content</strong>
</sebm-google-map-info-window>
</sebm-google-map-marker>
<sebm-google-map-circle [latitude]="lat + 0.3" [longitude]="lng"
[radius]="5000"
[fillColor]="'red'"
[circleDraggable]="true"
[editable]="true">
</sebm-google-map-circle>
</sebm-google-map>
`})
export class App {
// google maps zoom level
zoom: number = 8;
// initial center position for the map
lat: number = 51.673858;
lng: number = 7.815982;
clickedMarker(label: string, index: number) {
console.log(`clicked the marker: ${label || index}`)
}
mapClicked($event: MouseEvent) {
this.markers.push({
lat: $event.coords.lat,
lng: $event.coords.lng
});
}
markerDragEnd(m: marker, $event: MouseEvent) {
console.log('dragEnd', m, $event);
}
markers: marker[] = [
{
lat: 51.673858,
lng: 7.815982,
label: 'A',
draggable: true
},
{
lat: 51.373858,
lng: 7.215982,
label: 'B',
draggable: false
},
{
lat: 51.723858,
lng: 7.895982,
label: 'C',
draggable: true
}
]
}
// just an interface for type safety.
interface marker {
lat: number;
lng: number;
label?: string;
draggable: boolean;
}
@组件({
选择器:“我的应用程序”,
风格:[`
.sebm谷歌地图容器{
高度:300px;
}
`],
模板:`
信息窗口内容
`})
导出类应用程序{
//谷歌地图缩放级别
缩放:数字=8;
//地图的初始中心位置
lat:数字=51.673858;
液化天然气:数量=7.815982;
clickedMarker(标签:字符串,索引:编号){
log(`clicked the marker:${label | | index}`)
}
mapClicked($event:MouseEvent){
这个,推({
lat:$event.coords.lat,
液化天然气:$event.coords.lng
});
}
markerDragEnd(m:marker$event:MouseEvent){
console.log('dragEnd',m$事件);
}
标记:标记[]=[
{
拉脱维亚:51.673858,
液化天然气:7.815982,
标签:“A”,
德拉格布尔:是的
},
{
拉脱维亚:51.373858,
液化天然气:7.215982,
标签:‘B’,
可拖动:错误
},
{
拉脱维亚:51.723858,
液化天然气:7.895982,
标签:‘C’,
德拉格布尔:是的
}
]
}
//只是一个类型安全的接口。
接口标记{
lat:数字;
液化天然气:数量;
标签?:字符串;
可拖动:布尔型;
}