google maps api 3 - tutorial - El mapa de api de la tabla Fusion no muestra los estilos después de la actualización de la tabla
google maps javascript api (1)
Soy relativamente nuevo en Fusion Tables Api y estoy intentando crear una aplicación web simple usando Fusion Tables y Google Maps Api. La aplicación se usará aproximadamente tres veces al día y cada vez se agregará un nuevo conjunto de datos a la tabla, reemplazando las entradas antiguas por nuevas.
Hasta ahora, la aplicación está funcionando como se esperaba, excepto cuando se realizan cambios en la tabla de fusión. Cuando agrego o elimino varias filas de la tabla manualmente a través de la página de Fusion Table y luego regreso a mi aplicación, noto que los estilos dejan de funcionar correctamente y, en muchos casos, no aparecen; Sin embargo, después de aproximadamente una hora, todo vuelve a funcionar normalmente.
El código que uso para crear los estilos es esto,
layer = new google.maps.FusionTablesLayer({
query: {
select: "geometry",
from: ''11CIZUlNjBPiOM1Y4pDUP_Mn9TxkqF0etfpWhi5c''
},
styles:[
{
polygonOptions:{
fillColor: ''#FF0000'',
fillOpacity: 0.05
}
},
{
where: "Location LIKE ''PERDUE''",
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.2
}
},
{
where: "GeoBlock = ''AC1C''",
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.8
}
},
{
where: "Location = ''BENGOUGH''",
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.99
}
}]
});
layer.setMap(map);
He investigado un poco para ver si alguien más tiene problemas similares, y lo más parecido que he encontrado es similar al problema que estoy teniendo es que puede ser un problema de caché con el navegador, pero yo '' Hemos probado este escenario con varias máquinas al mismo tiempo y hemos obtenido el mismo resultado. También he agregado la etiqueta de no caché a mi código para evitar que el navegador guarde en caché los estilos. No estoy seguro si esto es un problema de API o algo más. Apreciaré cualquier sugerencia sobre cómo abordar este problema.
Gracias,
Es un problema API, los mosaicos creados para mostrar las capas también serán almacenados en caché por google.
Qué puede hacer: modifique las consultas para que obtenga los mismos resultados, pero la representación de cadenas para la consulta es diferente. Esto debería acelerar la actualización de mosaico (y evitar el almacenamiento en caché del lado del cliente).
Tomando su código podría hacerse así:
var and='' Location does not contain "''+new Date().getTime()+''"'';
layer = new google.maps.FusionTablesLayer({
query: {
select: "geometry",
from: ''11CIZUlNjBPiOM1Y4pDUP_Mn9TxkqF0etfpWhi5c'',
where: and
},
styles:[
{
polygonOptions:{
fillColor: ''#FF0000'',
fillOpacity: 0.05
}
},
{
where: "Location LIKE ''PERDUE'' and "+and,
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.2
}
},
{
where: "GeoBlock = ''AC1C'' and "+and,
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.8
}
},
{
where: "Location = ''BENGOUGH'' and "+and,
polygonOptions: {
//fillColor: ''#0000FF''
fillOpacity:0.99
}
}]
});
En lugar de usar new Date().getTime()
, sugeriría utilizar (cuando esté disponible), por ejemplo, la marca de tiempo de la última modificación para que las teselas en caché todavía se puedan usar cuando no se haya realizado ninguna actualización.