Angularjs 谷歌地图在页面刷新后不显示地图
当我第一次进入页面时,地图显示成功。当我刷新时,地图不会继续显示。我应该怎么做?我正在使用google maps api v3,我将地图实现为angular指令 谢谢你的帮助 代码: 指令(“appMap2”,函数($window,$localStorage){ 返回{ 限制:“E”, 替换:正确, 模板:“”, 范围:{ 中心:“=”, 标记:“=”, 宽度:“@”, 高度:“@”, 缩放:“@”, mapTypeId:“@”, 泛控制:“@”, zoomControl:“@”, scaleControl:“@” }, 链接:函数(范围、元素、属性){ var toResize,toCenter; var映射; var信息窗口; var电流标记; var callbackName='InitMapCb'; var标记=[]; //加载google地图时的回调 $window[callbackName]=函数(){ createMap(); updateMarkers(); }; if(!$window.google |!$window.google.maps){ loadGMaps(); }否则{ createMap(); } 函数loadGMaps(){ var script=$window.document.createElement('script'); script.type='text/javascript'; script.src=http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=InitMapCb'; $window.document.body.appendChild(脚本); } 函数setMapOnAll(映射){ 对于(var i=0;iAngularjs 谷歌地图在页面刷新后不显示地图,angularjs,google-maps,Angularjs,Google Maps,当我第一次进入页面时,地图显示成功。当我刷新时,地图不会继续显示。我应该怎么做?我正在使用google maps api v3,我将地图实现为angular指令 谢谢你的帮助 代码: 指令(“appMap2”,函数($window,$localStorage){ 返回{ 限制:“E”, 替换:正确, 模板:“”, 范围:{ 中心:“=”, 标记:“=”, 宽度:“@”, 高度:“@”, 缩放:“@”, mapTypeId:“@”, 泛控制:“@”, zoomControl:“@”, scale
您还应提供相关代码。仅仅提到这个问题并不能帮助其他人找到解决方案。我已经添加了代码!您是否检查了刷新时是否调用了您的loadGmaps
功能?检查此项/您还应提供相关代码。我
.directive("appMap2", function ($window,$localStorage) {
return {
restrict: "E",
replace: true,
template: "<div></div>",
scope: {
center: "=",
markers: "=",
width: "@",
height: "@",
zoom: "@",
mapTypeId: "@",
panControl: "@",
zoomControl: "@",
scaleControl: "@"
},
link: function (scope, element, attrs) {
var toResize, toCenter;
var map;
var infowindow;
var currentMarkers;
var callbackName = 'InitMapCb';
var markers=[];
// callback when google maps is loaded
$window[callbackName] = function() {
createMap();
updateMarkers();
};
if (!$window.google || !$window.google.maps ) {
loadGMaps();
}else{
createMap();
}
function loadGMaps() {
var script = $window.document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=InitMapCb';
$window.document.body.appendChild(script);
}
function setMapOnAll(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}
// Removes the markers from the map, but keeps them in the array
function clearMarkers() {
setMapOnAll(null);
}
// Shows any markers currently in the array.
function showMarkers() {
setMapOnAll(map);
}
function deleteMarkers() {
clearMarkers();
markers = [];
}
function createMap() {
google.maps.event.addDomListener(window, 'load', createMap);
var mapOptions = {
zoom: 7,
center: new google.maps.LatLng($localStorage.latitude,$localStorage.longitude),
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true,
zoomControl: true,
mapTypeControl: true,
scaleControl: false,
streetViewControl: false,
navigationControl: true,
disableDefaultUI: true,
overviewMapControl: true
};
if (!(map instanceof google.maps.Map)) {
map = new google.maps.Map(element[0], mapOptions);
google.maps.event.addDomListener(element[0], 'mousedown', function(e) {
e.preventDefault();
return false;
});
google.maps.event.addListener(map, "click", function (e) {
deleteMarkers();
var x=JSON.parse(JSON.stringify(e));
var latLng = x.latLng;
alert(latLng.lat)
$localStorage.locationDealSet=[latLng.lat,latLng.lng];
alert($localStorage.locationDealSet)
marker= new google.maps.Marker({
position: {lat:Number(parseFloat(latLng.lat)),lng:Number(parseFloat(latLng.lng))},
map:map,
title:$localStorage.deal.title
})
markers.push(marker);
marker.setMap(map);
});
infowindow = new google.maps.InfoWindow();
}
}
scope.$watch('markers', function() {
updateMarkers();
});
function onItemClick(pin, label, datum, url) {
var contentString = "Name: " + label + "<br />Time: " + datum;
infowindow.setContent(contentString);
infowindow.setPosition(pin.position);
infowindow.open(map);
google.maps.event.addListener(infowindow, 'closeclick', function() {
infowindow.close();
});
}
function markerCb(marker, member, location) {
return function() {
var href="http://maps.apple.com/?q="+member.lat+","+member.lon;
map.setCenter(location);
onItemClick(marker, member.name, member.date, href);
};
}
function updateMarkers() {
if (map ) {
/*element.bind('click',function(info){
alert('click on map '+JSON.stringify(info));
var marker=new google.maps.Marker({
position:{lat:$localStorage.deal.location[0],lng:$localStorage.deal.location[1]},
map:map,
title:$localStorage.deal.title
})
marker.setMap(map);
}) */
}
}
function getLocation(loc) {
if (loc == null) return new google.maps.LatLng(40, -73);
if (angular.isString(loc)) loc = scope.$eval(loc);
return new google.maps.LatLng(loc.lat, loc.lon);
}
}
};
})
<app-map2 style="height:33%;width:100%;" center="bucharest" zoom="5">
</app-map>