Edw*_*ard 5 javascript google-maps angular
我使用Angular 2,我需要使用Google Map.我需要初始化一个地图,创建一些带有路线坐标的数组,添加一个自定义HTML标记,添加一些事件监听器,绘制折线等等.所有这些都可以在网页上只使用原生JS.在我的工作中,我需要使用Angular2.我如何在组件内部初始化一个地图对象,并在一个组件内操纵它,就像对象一样?
有一个angular2-google-maps库,但它的功能有限.例如,我无法使用angular2-google-maps创建折线,我无法集成某些库,例如自定义HTML标记,cSnapToRoute等.
ale*_*xey -2
您可以制作简单的 JS 脚本,无需 Angular 即可将其加载到页面上。您可以像这样初始化 GMap:
var mapData;
container.gmap(
{
'zoomControl': true,
'zoomControlOptions': {
'style': google.maps.ZoomControlStyle.SMALL,
'position': google.maps.ControlPosition[ options.mapZoomPosition ]
},
'panControl': false,
'streetViewControl': false,
'mapTypeControl': false,
'overviewMapControl': false,
'scrollwheel': false,
'draggable': options.draggable,
'mapTypeId': google.maps.MapTypeId[ options.mapType ],
'zoom': options.mapZoom,
'styles': styles[ options.mapStyle ]
})
.bind('init', function () {
mapData = {
container: container,
map: map,
options: options,
addMarker: addMarker,
library: library,
iw: {
data: infoWindowData,
window: infoWindow,
content: infoWindowContent,
open: infoWindowOpen,
close: infoWindowClose
}
};
}
Run Code Online (Sandbox Code Playgroud)
然后您可以在 GMap 完成初始化时触发事件:
google.maps.event.addListenerOnce(map, 'idle', function () {
$(document).trigger('map.init', mapData);
});
Run Code Online (Sandbox Code Playgroud)
然后你可以在 Angular 中捕获它:
var mapData;
$(document).on('map.init', function (event,data) {
mapData = data;
});
Run Code Online (Sandbox Code Playgroud)
然后就可以正常使用了,设置缩放例如:
mapData.map.setZoom(50);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |