Meerdere (>4) Google Maps laadt niet
Ik ben bezig met een reisverslagen module voor mijn site, en voor elke dag kun je dan aangeven via google maps waar je geweest bent.
Als je dus 14 dagen weggeweest bent, krijg je 14 google maps vensters te zien.
Echter laden er (willekeurig!) maar een paar. Dit is vaak de 1e 3a4.
Klopt dit? Is het onmogelijk om bijv 20 google maps vensters tegelijk te laden?
En zijn er meer met dit probleem?
Bedankt!
www.reismee.nl heeft dit al eens gebouwd m.b.v. google maps. Ik denk dat het probleem in de code zal zitten
Kun je een stukje script laten zien? dit is namelijk gewoon mogelijk. bijvoorbeeld Waarom niet gewoon 1 map met meerdere pointers op? Want volgens mij wordt het al snel een boeltje als je 20 google maps op 1 scherm hebt open liggen.
PHP leest uit de database de plaatsnamen uit die bezocht zijn.
Er wordt een zooi invulvelden aangemaakt (wat je die dag gedaan hebt, score, etc etc)
Er wordt een google maps canvas geladen. deze laat de punten zien waar je geweest bent, elke marker wordt in een array gezet (1 array per dag)
Naast google maps wordt een UL lijst gegenereerd. Met voor elke marker 1 LI. Deze li bevat onclick events die je wijzen naar de marker.
Naast de li zit een deleteknopje, die de li verwijderd en de marker weghaalt.
de maps worden gecentreerd op alle markers. (middelpunt). En zijn listeners gekoppeld aan de markers.
Je kunt markers toevoegen die tegelijk ook een LI toevoegd.
En ik zal vast nog wel wat vergeten te vertellen zijn wat het nog meer doet.
Al met al een redelijk systeempje.
Doordat je met verschillende dagen werkt op 1 scherm, en dus elke google maps uniek moet zijn, wordt elke google maps variabele voorzien van een unieke code.
Dit is in iedergeval de initialisatie van Google Maps (per dag, dus meerder van deze blokken op 1 scherm)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if (GBrowserIsCompatible()) {
// Globals
var liMenua19bbdda53c0e48ad64677557a0578cf = "";
var gmarkersa19bbdda53c0e48ad64677557a0578cf = [];
// Initiate Google Maps
var mapa19bbdda53c0e48ad64677557a0578cf = new GMap2(document.getElementById("mapCanvasa19bbdda53c0e48ad64677557a0578cf"), G_HYBRID_MAP);
var boundsa19bbdda53c0e48ad64677557a0578cf = new GLatLngBounds;
mapa19bbdda53c0e48ad64677557a0578cf.addControl(new GSmallMapControl());
mapa19bbdda53c0e48ad64677557a0578cf.addControl(new GMenuMapTypeControl() );
mapa19bbdda53c0e48ad64677557a0578cf.enableScrollWheelZoom();
mapa19bbdda53c0e48ad64677557a0578cf.setMapType(G_SATELLITE_MAP);
// Initiate GeoCoding
var geocodera19bbdda53c0e48ad64677557a0578cf = new GClientGeocoder();
// Array Places
var arrayPlacesa19bbdda53c0e48ad64677557a0578cf = new Array('stadskanaal','musselkanaal','onstwedde','wedde');
// Handle each place
for (var i = 0; i < arrayPlacesa19bbdda53c0e48ad64677557a0578cf.length; i++) {
handlePlacea19bbdda53c0e48ad64677557a0578cf(mapa19bbdda53c0e48ad64677557a0578cf, geocodera19bbdda53c0e48ad64677557a0578cf, arrayPlacesa19bbdda53c0e48ad64677557a0578cf[i], 'a19bbdda53c0e48ad64677557a0578cfGUID' + i, i);
}
}
// Globals
var liMenua19bbdda53c0e48ad64677557a0578cf = "";
var gmarkersa19bbdda53c0e48ad64677557a0578cf = [];
// Initiate Google Maps
var mapa19bbdda53c0e48ad64677557a0578cf = new GMap2(document.getElementById("mapCanvasa19bbdda53c0e48ad64677557a0578cf"), G_HYBRID_MAP);
var boundsa19bbdda53c0e48ad64677557a0578cf = new GLatLngBounds;
mapa19bbdda53c0e48ad64677557a0578cf.addControl(new GSmallMapControl());
mapa19bbdda53c0e48ad64677557a0578cf.addControl(new GMenuMapTypeControl() );
mapa19bbdda53c0e48ad64677557a0578cf.enableScrollWheelZoom();
mapa19bbdda53c0e48ad64677557a0578cf.setMapType(G_SATELLITE_MAP);
// Initiate GeoCoding
var geocodera19bbdda53c0e48ad64677557a0578cf = new GClientGeocoder();
// Array Places
var arrayPlacesa19bbdda53c0e48ad64677557a0578cf = new Array('stadskanaal','musselkanaal','onstwedde','wedde');
// Handle each place
for (var i = 0; i < arrayPlacesa19bbdda53c0e48ad64677557a0578cf.length; i++) {
handlePlacea19bbdda53c0e48ad64677557a0578cf(mapa19bbdda53c0e48ad64677557a0578cf, geocodera19bbdda53c0e48ad64677557a0578cf, arrayPlacesa19bbdda53c0e48ad64677557a0578cf[i], 'a19bbdda53c0e48ad64677557a0578cfGUID' + i, i);
}
}
EDIT:
@ MRmoe
Dit is niet mogelijk, omdat je juist per dag wilt bepalen waar je geweest bent,
Het is misschien wel mogelijk, maar lang niet zo netjes en gebruiksvriendelijk als wat ik nu heb.
Een voorbeeld van hoe 1 dag eruit ziet (bij 2 weken heb je dus 14 x dit)
http://yfrog.com/j5voorbeeldmp
Gewijzigd op 01/01/1970 01:00:00 door Leon Kunst
*bump
*bump2
Waarom niet één mapje en per dag een verschillende marker gebruiken?. Je kan dan zelfs per dag filteren (toon dag : 1, of 2 of 3, ...).
Wat je nu wil (20mapjes) lijkt mij sowieso niet gebruiksvriendelijk, zeker niet als je met een klein scherm of lage resolutie zit.
Verder ook qua laden, als je 5 000 gebruikers hebt en die vragen telkens 20mapjes op?
Het is maar een idee natuurlijk :)