função updateMap para a API do Google Maps
estou a ter problemas com a função updateMap na API do google Maps... especificamente com o uso de múltiplas declarações "else if" para consulta de dados. O meu código está em baixo. O primeiro " se "funciona, o primeiro" se "funciona, e o último" else "funciona para atualizar o meu mapa, é o segundo" se " que não atualiza o meu mapa. O utilizador passa os valores dos menus "tipo" e "Visibilit2" através dos menus "drop down".
Alguma sugestão para corrigir isto? O mapa precisa de ser actualizado com base nos valores do utilizador de ambos, ambos, ou nenhum deles, definindo o menu em branco (que é o que a última conta para). Idealmente, gostaria de expandir isso para incluir três ou quatro opções adicionais para consulta. Os dados são armazenados numa tabela de fusão.google.maps.event.addDomListener(document.getElementById('Type'), 'change', function(){updateMap(layer, tableID, locationColumn);});
google.maps.event.addDomListener(document.getElementById('Visibilit2'), 'change', function(){updateMap(layer, tableID, locationColumn);});
function updateMap(layer, tableID, locationColumn){
var Type = document.getElementById('Type').value;
var Visibilit2 = document.getElementById('Visibilit2').value
if (Type, Visibilit2){
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Type = '" + Type + "' AND Visibilit2 = '" + Visibilit2 + "'"
}
});
} else if (Type){
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Type = '" + Type + "'"
}
});
} else if (Visibilit2){
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Visibilit2 = '" + Visibilit2 + "'"
}
});
}
else {
layer.setOptions({
query: {
select: locationColumn,
from: tableID
}
});
}
}
0
Author: Mark Reimer, 2014-12-18
1 answers
Está bem, resolvi-o quase imediatamente após a publicação. Mas! Eu não tenho certeza se é a maneira mais eficiente de fazê-lo e eu não acho que ele vai resolver o problema se eu adicionei mais variáveis. O código está abaixo e eu gostaria muito de receber quaisquer sugestões para melhores maneiras de fazer isso. Acabei de aninhar um "se"dentro do primeiro "se", ainda estou confuso sobre o porquê de múltiplos " se " não funcionarem...
Obrigado!
function updateMap(layer, tableID, locationColumn){
var Type = document.getElementById('Type').value;
var Visibilit2 = document.getElementById('Visibilit2').value
if (Type){
if (Visibilit2){
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Type = '" + Type + "' AND Visibilit2 = '" + Visibilit2 + "'"
}
});
} else {
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Type = '" + Type + "'"
}
});
}
} else if (Visibilit2){
layer.setOptions({
query: {
select: locationColumn,
from: tableID,
where: "Visibilit2 = '" + Visibilit2 + "'"
}
});
}
else {
layer.setOptions({
query: {
select: locationColumn,
from: tableID
}
});
}
}
0
Author: Mark Reimer, 2014-12-18 15:57:02