#javascript #google-maps-api-3
#javascript #google-maps-api-3
Вопрос:
Прежде всего, я уже видел другие ответы о подобных проблемах, но это немного другое. Итак, у меня есть код javascript, который берет данные о долготе и широте из базы данных через php, я действительно могу собирать данные в формате, который выглядит как минимум правильно, но когда я пытаюсь обновить слой, ничего не отображается… будем признательны за любую помощь.
Вот код js: ОТРЕДАКТИРОВАН, ТЕПЕРЬ РАБОТАЕТ
var Datas = [new google.maps.LatLng(32.7603282,46.343451)];
var pointArray = new google.maps.MVCArray(Datas);
$(document).ready(function() {
$('#gnome').change(function() {
var inpval=$(this).val();
$.ajax({
url: 'php/query.php',
type: 'POST',
data: {valor : inpval},
success: function(data) {
while(Datas.length > 0) {
Datas.pop();
}
//heatmap.setData(reboot(data));
pointArray = new google.maps.MVCArray(reboot(data));
initialize();
}
});
});
});
var config = {
"radius": 30,
"element": "heatmapEl",
"visible": true,
"opacity": 40,
"gradient": { 0.45: "rgb(0,0,255)", 0.55: "rgb(0,255,255)", 0.65: "rgb(0,255,0)", 0.95: "yellow", 1.0: "rgb(255,0,0)" }
};
function initialize() {
var mapOptions = {
zoom: 5,
center: new google.maps.LatLng(32.7603282, 46.343451),
mapTypeId: google.maps.MapTypeId.SATELLITE
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
pointArray = new google.maps.MVCArray(Datas);
heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
}
function reboot(Ddatas){
alert(Ddatas);
var arraino = [];
for (a in Ddatas) {
arraino.push(new google.maps.LatLng(
Ddatas[a][0],
Ddatas[a][1]));
}
alert(arraino);
return (arraino);
}
google.maps.event.addDomListener(window, 'load', initialize);
вполне рабочая ссылка http://testingme.altervista.org/progettolpw/index.php
Ответ №1:
Вы не создаете google.maps.Объекты LatLng корректны.
Это неверно (создается строка «новый google.maps.LatLng (xxx, гггг)», который не будет работать так, как вы ожидаете):
for (a in Ddatas){
arraino.push("new google.maps.LatLng(" Ddatas[a] ")");
}
Сделайте это вместо:
for (a in Ddatas) {
arraino.push(new google.maps.LatLng(
Ddatas[a][0],
Ddatas[a][1]));
}