ionic + angularjs 传单指令:无法全屏显示
ionic + angularjs leaflet directive: cannot display fullscreen
我正在使用 https://github.com/calendee/ionic-leafletjs-map-demo/ 和更新的 angular-leaflet-directive.min.js (0.7.15),因为演示使用的是旧版本。
我无法生成全屏按钮,如下所示:https://tombatossals.github.io/angular-leaflet-directive/examples/0000-viewer.html#/controls/fullscreen-example
我的 $scope.map 在 mapController.js:
$scope.map = {
defaults: {
//tileLayer: 'https://api.tiles.mapbox.com/v4/sla.c97ab90d/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoic2xhIiwiYSI6Ik15dE1uclUifQ.ZmSBZxWOZYCSW3m71abSzQ#17',
//tileLayer: 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png'
layers: {
baselayers: {
basemap: $scope.basemapLayers.basemap,
map2007: $scope.basemapLayers.map2007,
map1998: $scope.basemapLayers.map1998,
map1988: $scope.basemapLayers.map1988,
map1975: $scope.basemapLayers.map1975,
map1969: $scope.basemapLayers.map1969,
map1955: $scope.basemapLayers.map1955
}
},
controls: {
//draw: {},
//scale: true,
fullscreen: {
position: 'topleft'
}
}
},
center: {
lat: 1.355,
lng: 103.840,
zoom: 14,
minZoom: 12,
maxZoom: 18
},
markers : {},
events: {
map: {
enable: ['click', 'context'],
logic: 'emit'
}
}
};
$scope.map2 = {
defaults: {
//tileLayer: 'https://api.tiles.mapbox.com/v4/sla.c97ab90d/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoic2xhIiwiYSI6Ik15dE1uclUifQ.ZmSBZxWOZYCSW3m71abSzQ#17',
//tileLayer: 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png'
layers: {
baselayers: {
map1955: $scope.basemapLayers.map1955,
map1969: $scope.basemapLayers.map1969,
map1975: $scope.basemapLayers.map1975,
map1988: $scope.basemapLayers.map1988,
map1998: $scope.basemapLayers.map1998,
map2007: $scope.basemapLayers.map2007,
basemap: $scope.basemapLayers.basemap
}
},
controls: {
//draw: {},
//scale: true,
fullscreen: {
position: 'topleft'
}
}
},
center: {
lat: 1.355,
lng: 103.840,
zoom: 14,
minZoom: 12,
maxZoom: 18
},
markers : {},
events: {
map: {
enable: ['click', 'context'],
logic: 'emit'
}
}
};
我的map.html:
<ion-view title="Historical Map">
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
<ion-nav-buttons side="right">
<button ng-click="locate();" title="Search" class="button button-icon icon ion-ios-search-strong"></button>
</ion-nav-buttons>
<div class="row">
<ion-content data-tap-disabled="true" class="col col-top" style="bottom: 50%";>
<leaflet id="map1" event-broadcast="map.events" defaults="map.defaults" center="map.center" controls="map.defaults.controls" markers="map.markers" layers="map.defaults.layers" width="100%" height="100%" ng-if="map"></leaflet>
</ion-content>
<ion-content data-tap-disabled="true" class="col col-bottom" style="top: 50%;">
<leaflet id="map2" event-broadcast="map.events" defaults="map.defaults" center="map.center" controls="map2.defaults.controls" markers="map.markers" layers="map2.defaults.layers" width="100%" height="100%" ng-if="map2"></leaflet>
</ion-content>
</div>
<ion-footer-bar class="bar-positive">
<div class="buttons pull-left">
<button ng-click="locate();" title="Find Me" class="button button-icon icon ion-pinpoint" style="color: white;"> Find Me</button>
</div>
<div class="buttons pull-right">
<button data-ng-click="openModal();" data-ng-controller="MarkerController" title="Add Marker" class="button button-icon icon ion-edit" style="color: white;"> Add Marker</button>
</div>
<!--<div class="buttons pull-right">
<button ng-click="runCamera();" title="Camera" class="button button-icon icon ion-camera" style="color: white;"> Camera</button>
</div>-->
</ion-footer-bar>
</ion-view>
我的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Leaflet Demo</title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link rel="stylesheet" href="css/leaflet.css" />
<link rel="stylesheet" href="css/style.css" />
<link href="lib/fullscreen/leaflet.fullscreen.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/leaflet/leaflet.js"></script>
<script src="lib/leaflet/angular-leaflet-directive.min.js"></script>
<script src="lib/fullscreen/Leaflet.fullscreen.min.js"></script>
<script src="lib/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/mapController.js"></script>
<script src="js/controllers/imageController.js"></script>
<script src="js/controllers/markerController.js"></script>
<script src="js/services/locationsService.js"></script>
<script src="js/services/instructionsService.js"></script>
<script src="js/directives/igTruncate.js"></script>
</head>
<body ng-app="starter" class="platform-ios platform-cordova platform-webview">
<ion-nav-view></ion-nav-view>
</body>
</html>
预览:
http://i.imgur.com/22h0pzZ.jpg -- where the red-boxed shows the missing control layer for fullscreen.
很久以前我就一直在使用全屏控件,然后就这样添加了它:
首先创建按钮:
var fullScreenCtrl = L.control.fullscreen();
然后添加按钮:
controls : { custom : [ fullScreenCtrl ] }
我正在使用 https://github.com/calendee/ionic-leafletjs-map-demo/ 和更新的 angular-leaflet-directive.min.js (0.7.15),因为演示使用的是旧版本。
我无法生成全屏按钮,如下所示:https://tombatossals.github.io/angular-leaflet-directive/examples/0000-viewer.html#/controls/fullscreen-example
我的 $scope.map 在 mapController.js:
$scope.map = {
defaults: {
//tileLayer: 'https://api.tiles.mapbox.com/v4/sla.c97ab90d/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoic2xhIiwiYSI6Ik15dE1uclUifQ.ZmSBZxWOZYCSW3m71abSzQ#17',
//tileLayer: 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png'
layers: {
baselayers: {
basemap: $scope.basemapLayers.basemap,
map2007: $scope.basemapLayers.map2007,
map1998: $scope.basemapLayers.map1998,
map1988: $scope.basemapLayers.map1988,
map1975: $scope.basemapLayers.map1975,
map1969: $scope.basemapLayers.map1969,
map1955: $scope.basemapLayers.map1955
}
},
controls: {
//draw: {},
//scale: true,
fullscreen: {
position: 'topleft'
}
}
},
center: {
lat: 1.355,
lng: 103.840,
zoom: 14,
minZoom: 12,
maxZoom: 18
},
markers : {},
events: {
map: {
enable: ['click', 'context'],
logic: 'emit'
}
}
};
$scope.map2 = {
defaults: {
//tileLayer: 'https://api.tiles.mapbox.com/v4/sla.c97ab90d/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoic2xhIiwiYSI6Ik15dE1uclUifQ.ZmSBZxWOZYCSW3m71abSzQ#17',
//tileLayer: 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png'
layers: {
baselayers: {
map1955: $scope.basemapLayers.map1955,
map1969: $scope.basemapLayers.map1969,
map1975: $scope.basemapLayers.map1975,
map1988: $scope.basemapLayers.map1988,
map1998: $scope.basemapLayers.map1998,
map2007: $scope.basemapLayers.map2007,
basemap: $scope.basemapLayers.basemap
}
},
controls: {
//draw: {},
//scale: true,
fullscreen: {
position: 'topleft'
}
}
},
center: {
lat: 1.355,
lng: 103.840,
zoom: 14,
minZoom: 12,
maxZoom: 18
},
markers : {},
events: {
map: {
enable: ['click', 'context'],
logic: 'emit'
}
}
};
我的map.html:
<ion-view title="Historical Map">
<ion-nav-buttons side="left">
<button menu-toggle="left" class="button button-icon icon ion-navicon"></button>
</ion-nav-buttons>
<ion-nav-buttons side="right">
<button ng-click="locate();" title="Search" class="button button-icon icon ion-ios-search-strong"></button>
</ion-nav-buttons>
<div class="row">
<ion-content data-tap-disabled="true" class="col col-top" style="bottom: 50%";>
<leaflet id="map1" event-broadcast="map.events" defaults="map.defaults" center="map.center" controls="map.defaults.controls" markers="map.markers" layers="map.defaults.layers" width="100%" height="100%" ng-if="map"></leaflet>
</ion-content>
<ion-content data-tap-disabled="true" class="col col-bottom" style="top: 50%;">
<leaflet id="map2" event-broadcast="map.events" defaults="map.defaults" center="map.center" controls="map2.defaults.controls" markers="map.markers" layers="map2.defaults.layers" width="100%" height="100%" ng-if="map2"></leaflet>
</ion-content>
</div>
<ion-footer-bar class="bar-positive">
<div class="buttons pull-left">
<button ng-click="locate();" title="Find Me" class="button button-icon icon ion-pinpoint" style="color: white;"> Find Me</button>
</div>
<div class="buttons pull-right">
<button data-ng-click="openModal();" data-ng-controller="MarkerController" title="Add Marker" class="button button-icon icon ion-edit" style="color: white;"> Add Marker</button>
</div>
<!--<div class="buttons pull-right">
<button ng-click="runCamera();" title="Camera" class="button button-icon icon ion-camera" style="color: white;"> Camera</button>
</div>-->
</ion-footer-bar>
</ion-view>
我的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title>Leaflet Demo</title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link rel="stylesheet" href="css/leaflet.css" />
<link rel="stylesheet" href="css/style.css" />
<link href="lib/fullscreen/leaflet.fullscreen.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/leaflet/leaflet.js"></script>
<script src="lib/leaflet/angular-leaflet-directive.min.js"></script>
<script src="lib/fullscreen/Leaflet.fullscreen.min.js"></script>
<script src="lib/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/mapController.js"></script>
<script src="js/controllers/imageController.js"></script>
<script src="js/controllers/markerController.js"></script>
<script src="js/services/locationsService.js"></script>
<script src="js/services/instructionsService.js"></script>
<script src="js/directives/igTruncate.js"></script>
</head>
<body ng-app="starter" class="platform-ios platform-cordova platform-webview">
<ion-nav-view></ion-nav-view>
</body>
</html>
预览:
http://i.imgur.com/22h0pzZ.jpg -- where the red-boxed shows the missing control layer for fullscreen.
很久以前我就一直在使用全屏控件,然后就这样添加了它:
首先创建按钮:
var fullScreenCtrl = L.control.fullscreen();
然后添加按钮:
controls : { custom : [ fullScreenCtrl ] }