2014-03-27 48 views
9

我使用角谷歌,地圖在我的項目:如何使用angular-google-maps <markers>指令?

http://angular-google-maps.org/

我想要添加多個標記,使用下面的定義的對象:

vehicles = [ 
{ 
    stuff: "stuff", 
    last_known_location: { 
     latitude: number, 
     longitude: number 
    } 

}, 
{ 
    stuff: "stuff", 
    last_known_location: { 
     latitude: number, 
     longitude: number 
    } 

},//...etc 
] 

我的指令外觀如:

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

車輛是如上所述的一組物體。

這不起作用。如果我改變我的模型只是有經緯度的屬性,並完全失去了last_known_location屬性,並改變我的指令coords ='self',那麼它工作正常。我需要做什麼才能使我的json結構工作?

回答

17

正如你所想的那樣,它在這裏陳述:http://angular-ui.github.io/angular-google-maps/#!/api/markers屬性coords的值必須在引號之間。

另外,在V1.1,每個標記需要定義一個id,模型缺省(id屬性的名稱由idKey給出)。ID,

所以,你的情況,併爲它現在的工作也必須是

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

和車輛陣列,例如:

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

(注意ID財產)

+0

真棒,這幫了我,他們的文檔不是100%清楚,我可能會去貢獻這個github它幫了我很多 –

+0

Arrrr,謝謝你。大壩報價..... – Fergus

0

我不認爲你需要在你已經爲你的模型定義它之後再次定義數組。你可以試試:

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

如果沒有他們中last_known_location,只是父對象內,該API說,你可以用「自我」來識別對象包含緯度和經度

+0

沒有通過從coords拆除車輛的工作。它通過在父對象中放置lat和lon來工作,我不想那樣做。 – user602525

+0

怎麼樣使用coords ='self.last_known_location' – jOshT

+0

nope不起作用 – user602525

0

兩個東西:

首先,將[]添加到last_known_location的定義中,以使其成爲一組對象。在Angular Google Maps的這個測試頁面中,沒有它的Coords就無法運行。 http://www.directiv.es/angular-google-maps

其次,確保vehicles可以訪問您的模塊。做到這一點的最佳方式是將其作爲$scope的一部分。

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

然後在@ jOshT的響應標記將工作:

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

UPDATE

每評論,我誤解,此實現使用markers代替marker。前者要求coords對象爲string,後者則需要expression。使用原始代碼序列化last_known_location將起作用。

+0

車輛是一組對象,請參閱我的編輯。 – user602525

+0

另外,車輛在控制器中是可見的,如果我溝通last_known_location屬性,我可以得到這個工作。 – user602525

+0

請仔細查看我的答案中的對象定義。 'last_known_location'需要是一個內部有object的數組。 –