Итак, я создал карту Google на своем веб-сайте с функциями, которые динамически извлекают данные из файла JSON, а затем создают маркеры на карте в зависимости от полученных данных.
Следуя официальному руководству Google по Google Maps: Работа с объектами JSON, все работает нормально, кроме есть небольшая проблема: на карте отображается не более 21 маркера при наличии не менее 1600 записей. Результирующие маркеры всегда одинаковы, однако у них есть правильные данные (маркеры находятся в правильном положении с правильными заголовками для информационного окна) Вот фрагмент соответствующего кода:
for (var x in dataForm4) {
var data = dataForm4[x];
var latLng = new google.maps.LatLng(data.lat, data.lng);
addMarker (map, data.address, latLng);
};
} //This is where the "initiliaze map" function ends
var infoWindow;
function addMarker (map, address, latLng){
var marker = new google.maps.Marker({
position: latLng,
map: map,
});
google.maps.event.addListener(marker, 'click', function() {
if (typeof infoWindow != 'undefined') infoWindow.close();
infoWindow = new google.maps.InfoWindow ({
content: address
});
infoWindow.open(map, marker);
});
}
Примечания к коду:
dataForm4 - это строковая переменная файла JSON:
<script> var dataForm4 = <%- JSON.stringify(form2) %>; </script>
адрес - это "заголовок" каждого адреса, находящегося внутри файла JSON, для использования в информационном окне.
- переменная карты определяется внутри функции инициализации
У меня также есть функция, при которой данные, введенные в базу данных, автоматически вводятся в файл JSON, но это, вероятно, не имеет значения.
К сожалению, кластеризация маркеров - это не вариант. Я пробовал использовать функции setTimeout () и setInterval (), но не смог заставить их правильно работать с моей картой, так как я новичок. Для справки я использую бесплатную версию Google Map API.
1 ответ
Вау, после сравнения баз данных, похоже, кто-то ввел некоторые данные вручную, переменная "lat" внутри файла была введена как "lat". Из-за пробела в конце Google не мог определить широту адресов. Мы исправили это ранее, но ответственное лицо забыло изменить данные, которые были введены вручную. Значит, причиной ошибки была неправильная переменная.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.