OpenLayers3 和 AngularJS 中的静态图像旋转
Static image rotation in OpenLayers3 and AngularJS
我正在使用 angular-openlayers-directive for creating custom map. Tried to modify this example ,在自定义图层中使用静态图像而不是地图。 Bug 会报错。
我正在寻找将自定义图像旋转为地图的解决方案。你能帮忙解决这个问题吗?
在没有看到您的代码或不知道错误消息的情况下,很难具体说出问题是什么,但这里是修改为旋转静态图像的示例:
<!DOCTYPE html>
<html ng-app="demoapp">
<head>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/openlayers3/build/ol.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/angular/angular.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/dist/angular-openlayers-directive.js"></script>
<link rel="stylesheet" href="https://tombatossals.github.io/angular-openlayers-directive/bower_components/openlayers3/build/ol.css" />
<script>
var app = angular.module('demoapp', ['openlayers-directive']);
app.controller('DemoController', ['$scope', '$http', 'olData', function($scope, $http, olData) {
angular.extend($scope, {
degrees: 0,
center: {
coord: [900, 600],
zoom: 3
},
defaults: {
view: {
projection: 'pixel',
extent: [0, 0, 1800, 1200],
rotation: 0
}
},
static: {
source: {
type: "ImageStatic",
url: "http://blog.wallpops.com/wp-content/upLoads/2013/05/WPE0624.jpg",
imageSize: [1800, 1200]
}
},
view: {
extent: [0, 0, 1800, 1200],
rotation: 0
}
});
$scope.degreesToRadians = function() {
$scope.view.rotation = parseFloat($scope.degrees, 10).toFixed(2) * (Math.PI / 180);
};
$scope.$watch('view.rotation', function(value) {
$scope.degrees = ($scope.view.rotation * 180 / Math.PI).toFixed(2);
});
}]);
</script>
</head>
<body ng-controller="DemoController">
<openlayers ol-center="center" ol-defaults="defaults" ol-view="view" custom-layers="true" height="400px">
<ol-layer ol-layer-properties="static"></ol-layer>
</openlayers>
<h1>View rotation example</h1>
<p>You can interact with the view rotation of your map.</p>
<p>
<input type="range" min="-180" max="180" ng-change="degreesToRadians()" ng-model="degrees" /> Degrees: {{ degrees }}</p>
<pre ng-bind="view | json"></pre>
</body>
</html>
Plunker 中的相同示例:http://plnkr.co/edit/zw7QUyFfWXqnNE9rkdjZ?p=preview
我正在使用 angular-openlayers-directive for creating custom map. Tried to modify this example ,在自定义图层中使用静态图像而不是地图。 Bug 会报错。
我正在寻找将自定义图像旋转为地图的解决方案。你能帮忙解决这个问题吗?
在没有看到您的代码或不知道错误消息的情况下,很难具体说出问题是什么,但这里是修改为旋转静态图像的示例:
<!DOCTYPE html>
<html ng-app="demoapp">
<head>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/openlayers3/build/ol.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/angular/angular.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="https://tombatossals.github.io/angular-openlayers-directive/dist/angular-openlayers-directive.js"></script>
<link rel="stylesheet" href="https://tombatossals.github.io/angular-openlayers-directive/bower_components/openlayers3/build/ol.css" />
<script>
var app = angular.module('demoapp', ['openlayers-directive']);
app.controller('DemoController', ['$scope', '$http', 'olData', function($scope, $http, olData) {
angular.extend($scope, {
degrees: 0,
center: {
coord: [900, 600],
zoom: 3
},
defaults: {
view: {
projection: 'pixel',
extent: [0, 0, 1800, 1200],
rotation: 0
}
},
static: {
source: {
type: "ImageStatic",
url: "http://blog.wallpops.com/wp-content/upLoads/2013/05/WPE0624.jpg",
imageSize: [1800, 1200]
}
},
view: {
extent: [0, 0, 1800, 1200],
rotation: 0
}
});
$scope.degreesToRadians = function() {
$scope.view.rotation = parseFloat($scope.degrees, 10).toFixed(2) * (Math.PI / 180);
};
$scope.$watch('view.rotation', function(value) {
$scope.degrees = ($scope.view.rotation * 180 / Math.PI).toFixed(2);
});
}]);
</script>
</head>
<body ng-controller="DemoController">
<openlayers ol-center="center" ol-defaults="defaults" ol-view="view" custom-layers="true" height="400px">
<ol-layer ol-layer-properties="static"></ol-layer>
</openlayers>
<h1>View rotation example</h1>
<p>You can interact with the view rotation of your map.</p>
<p>
<input type="range" min="-180" max="180" ng-change="degreesToRadians()" ng-model="degrees" /> Degrees: {{ degrees }}</p>
<pre ng-bind="view | json"></pre>
</body>
</html>
Plunker 中的相同示例:http://plnkr.co/edit/zw7QUyFfWXqnNE9rkdjZ?p=preview