Tôi đang cân nhắc di chuyển từ backbonej sang angularjs.Khởi tạo Google Map trong AngularJS
Trong xương sống, tôi có thể khởi tạo chế độ xem tại điểm mà tôi tạo một bản sao của bản đồ google. Sau đó tôi có thể xoay/thu phóng/v.v ... và chuyển đổi giữa các chế độ xem và không làm mất trạng thái hiện tại của bản đồ.
Với angularjs sử dụng sau đây:
layout.html
<body>
<div class="container-fluid" ng-view></div>
map.html
<div id="map_canvas" ng-controller="MapCtrl"></div>
tôi đã có thể tạo ra một chỉ thị để vẽ lại một bản đồ tốt. Vấn đề là nó tải lại bản đồ mỗi khi tôi chuyển về chế độ xem bản đồ.
<map></map>
Vì vậy, từ những gì tôi đang học về Góc, tôi đã tìm tôi sẽ tạo MapController và khởi tạo bản đồ ở đó. Không thành công.
Điểm mấu chốt là tôi cần phải đồng bộ hóa-init bản đồ google và đẩy dữ liệu vào bản đồ cục bộ hoặc từ xa VÀ có thể điều hướng ứng dụng mà không cần RELOADING bản đồ từ đầu mỗi lần.
Ai đó có thể đề xuất phương pháp tiếp cận chính xác không?
Cảm ơn bạn :)
Cố gắng mỗi Andy Joslin gợi ý:
Trong app.js:
// Generated by CoffeeScript 1.3.3
(function() {
"use strict";
angular.module("ofm", ["ofm.filters", "GoogleMaps", "ofm.directives"]).config([
"$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) {
$routeProvider.when("/", {
templateUrl: "partials/home"
}).when("/map", {
templateUrl: "partials/map",
controller: MapCtrl
}).otherwise({
redirectTo: "/"
});
return $locationProvider.html5Mode(true);
}
]);
}).call(this);
Trong services.js:
angular.module('GoogleMaps', []).
factory('wasMapInitialized', function() {
console.log("inside service");
var maps = 0;
if (!maps) {
maps += 1;
return 0;
} else {
return 1;
}
});
Trong controllers.js:
function MapCtrl($scope) {
if (!GoogleMaps.wasMapInitialized()) {
var lat = 46.87916;
var lng = -3.32910;
var map_id = '#map';
initialize(map_id, lat, lng);
}
function initialize(map_id, lat, lng) {
var myOptions = {
zoom : 8,
center : new google.maps.LatLng(lat, lng),
mapTypeId : google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map($(map_id)[0], myOptions);
}
}
Trong map.html
#map
<div ng-controller="MapCtrl"></div>
tôi nhận được Lỗi: Không rõ nhà cung cấp: GoogleMapsProvider < - GoogleMaps
+1. Cũng muốn biết câu trả lời. –
Tôi đã tạo một dự án [angular-google-maps] (https://github.com/LarryEitel/angular-google-maps) với những cải tiến liên tục. Xem [phiên bản trực tiếp] (http://angular-google-maps.nodester.com/) –
Tuyệt vời, đã có trong danh sách theo dõi của tôi. :) –