Мой цикл создает маркеры карты Google, но он не может правильно установить их положение, поэтому они не отображаются. Жесткое кодирование позиции работает - PullRequest
0 голосов
/ 16 января 2019

По какой-то причине я не могу видеть маркеры карты Google, которые должны быть размещены на основе объектов в моем массиве маркеров после циклического перемещения по нему. Если бы я создал второй компонент и жестко запрограммировал позицию, появился бы маркер. После проверки компонентов, созданных с помощью цикла, я понял, что их положение установлено на неопределенное, хотя я установил его на m.position Есть идеи, почему?

<template>
    <div class="wrapper">
        <GmapMap
            :center="center"
            :zoom="zoom"
            :map-type-id="map"
            style="width: 100%; height: 850px"
        >
        <GmapMarker
            :key="index"
            v-for="(m, index) in markers"
            :position="m.position"
            :clickable="true"
            :draggable="true"
            @click="center=m.position"
        />
        </GmapMap>
    </div>
</template>

<script>
    export default {
        data: function() {
            return {
                images: [],
                markers: [{lat: 42.150527, lng: 24.746477}, {lat: 42.160527, lng: 24.796477}],
                center: {lat: 42.150527, lng: 24.746477},
                zoom: 15,
                map: 'roadmap'
            }
        }
    }
</script>

После жесткого кодирования GmapMarker с использованием следующего кода оно действительно отображается.

<GmapMarker
    :position="{lat: 42.150527, lng: 24.746477}"
    :clickable="true"
    :draggable="true"
    @click="center={lat: 42.150527, lng: 24.746477}"
/>

1 Ответ

0 голосов
/ 16 января 2019

В вашем цикле v-for, m - это {lat: ..., lng: ...} объект.

Эти объекты не имеют свойства position, поэтому измените

:position="m.position"
@click="center=m.position"

до

:position="m"
@click="center=m"
...