使用咖啡指令碼類初始化地圖示記

提供了 App.GoogleMap 咖啡指令碼類 ,並且標記資訊儲存在 .google_map div 的 data-address-fields 屬性中,地圖示記可以在地圖上初始化,如下所示:

# app/assets/javascripts/google_maps.js.coffee
# ...
class App.GoogleMap
  # ...
  markers: []

  constructor: (map_div)->
    # ...
    @init_markers()

  address_fields: ->
    @map_div.data('address-fields')

  init_markers: ->
    self = this  # to reference the instance as `self` when `this` is redefined.
    self.markers = []
    for address_field in self.address_fields()
      marker = new google.maps.Marker {
        map: self.map,
        position: {
          lng: address_field.longitude,
          lat: address_field.latitude
        },
        # # or, if `position` is defined in `ProfileFields::Address#as_json`:
        # position: address_field.position,
        title: address_field.value
      }
      self.markers.push marker

要了解有關標記選項的更多資訊,請檢視 Google 的 MarkerOptions 文件及其標記指南