Как динамически заполнять Gmarker на Gmaps с помощью ZK Framework

#java #mvvm #google-maps-api-3 #zk

#java #mvvm #google-maps-api-3 #zk

Вопрос:

Мне нужна помощь, чтобы динамически заполнять Gmarker данными lng и lat из моей базы данных и показывать в моем приложении ZK, что я использую Gmaps v.3.0.4

Я добавил маркер в файл zul и пытаюсь использовать forEach, но отображается только один маркер.

 <gmaps version="3." id="gmaps" width="100%" showZoomCtrl="true" lat="@bind(vm.lat)" lng="@bind(vm.lng)" height="500px"  protocol="https" >
    <gmarker forEach="@load(areaList)" lat="@bind(each.lat)" lng="@bind(each.lng)" open="true">
    </gmarker>
</gmaps>`
  

Маркер должен быть отображен как можно больше.

это мой полный файл ZUl с кодом и ViewmModel

Ответ №1:

Попробуйте:

 <gmaps version="3." id="gmaps" width="100%" showZoomCtrl="true" lat="@bind(vm.lat)" lng="@bind(vm.lng)" height="500px"  protocol="https" children="@load(vm.areaList)">
    <template name="children">
        <gmarker lat="@load(each.lat)" lng="@load(each.lng)" open="true" />
    </template>
</gmaps>
  

Я не тестировал это, но, надеюсь, это поможет.

Комментарии:

1. Я пробовал, как вы предложили, но маркер по-прежнему не отображается

2. Не удалось заметить, что у вас было children="@load(areaList)" . Так и должно быть children="@load(vm.areaList)" . Я отредактировал свой ответ, чтобы включить изменение.

3. Спасибо за ответ, я вижу, что дочерние элементы должны быть children="@load('vm.areaList)" , но проблема в том, что порядок lat и lng в моей базе данных изменен на противоположный, спасибо, теперь все работает нормально