Helpex - Trao đổi & giúp đỡ Đăng nhập
9

Tôi đang sử dụng góc-google-maps trong dự án của mình .

Tôi đang cố gắng thêm nhiều điểm đánh dấu, sử dụng các đối tượng có định nghĩa sau:

vehicles = [
{
    stuff: "stuff",
    last_known_location: {
        latitude: number,
        longitude: number
    }
    
},
{
    stuff: "stuff",
    last_known_location: {
        latitude: number,
        longitude: number
    }
    
},//...etc
]

Chỉ thị của tôi có dạng như sau:

<markers models='vehicles'
         coords='vehicles.last_known_location' >
</markers>

Phương tiện là một mảng các đối tượng như đã mô tả ở trên.

Điều này không hiệu quả. Nếu tôi thay đổi mô hình của mình để chỉ có các thuộc tính của vĩ độ và kinh độ và mất hoàn toàn thuộc last_known_locationtính và thay đổi chỉ thị của tôi coords='self'thì nó hoạt động tốt. Tôi cần làm gì để điều này hoạt động với cấu trúc json của tôi?

9 hữu ích 0 bình luận 13k xem chia sẻ
17

Như bạn thấy trên hình, nó nêu tại đây: http://angular-ui.github.io/angular-google-maps/#!/api/markers rằng giá trị của tài sản coords phải nằm giữa dấu ngoặc kép.

Ngoài ra, trong v1.1 , đối với mỗi điểm đánh dấu, bạn cần xác định một id (tên của thuộc tính id do idKey đưa ra ), mặc định là model.id,

vì vậy, trong trường hợp của bạn, và để nó hoạt động ngay bây giờ, nó sẽ phải

<markers models="vehicles" coords="'last_known_location'"></markers>

và mảng xe cộ, ví dụ:

$scope.vehicles = [{
  id: "first",
  stuff: "stuff",
  last_known_location: {
      latitude: 37.3694868,
      longitude: -5.9803275
  }
}];

(Lưu ý thuộc tính id )

17 hữu ích 1 bình luận chia sẻ
0

Tôi không nghĩ rằng bạn cần phải xác định lại mảng sau khi bạn đã xác định nó cho các mô hình của mình. Bạn có thể thử:

<markers models='vehicles' coords='last_known_location'>  </markers>

Nếu bạn không có chúng trong last_known_location và chỉ trong đối tượng mẹ, API cho biết bạn có thể sử dụng 'self' để xác định các đối tượng chứa lat và lng

0 hữu ích 5 bình luận chia sẻ
0

Hai điều:

Đầu tiên, hãy thêm []vào định nghĩa của bạn last_known_locationđể biến nó thành một mảng các đối tượng. Trong trang thử nghiệm này dành cho Angular Google Maps, các coords không hoạt động nếu không có nó. http://www.directiv.es/angular-google-maps

Thứ hai, đảm bảo vehiclescó thể truy cập vào mô-đun của bạn. Cách tốt nhất để làm điều đó là biến nó thành một phần của $scope.

angular.extend($scope, 
{
    vehicles:
        stuff = "stuff",
        last_known_location:  [{
          latitude: 45,
          longitude: -74
        }]
  });

Sau đó, đánh dấu trong phản hồi của @ jOshT sẽ hoạt động:

<marker models='vehicles' coords='last_known_location'>  </markers>

CẬP NHẬT

Theo nhận xét, tôi đã hiểu nhầm rằng việc triển khai này đang sử dụng điểm đánh dấu thay vì điểm đánh dấu . Cái trước yêu cầu coordsđối tượng là a stringvà cái sau yêu cầu một expression. Việc sắp xếp thứ tự last_known_locationvới mã gốc sẽ hoạt động.

0 hữu ích 5 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ javascript angularjs google-maps , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading