login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Google Maps iconen worden niet geladen

Offline GroundZero - 30/09/2013 15:28
Avatar van GroundZeroLid Beste,

ik wil enkele iconen laten zien op mijn maps. Hij laat echter één icoon zien en niet alle icoontjes. In de bron code staat echter wel alles correct.

Hebben jullie enig idee wat er fout kan zijn?
Een kopie van de broncode:

  1. <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
  2. <script language="javascript">
  3. function displayLocation(latitude,longitude)
  4. {
  5. function initialize()
  6. {
  7. var myLatlng = new google.maps.LatLng(latitude, longitude);
  8.  
  9. var mapOptions = {
  10. zoom: 13,
  11. center: myLatlng,
  12. mapTypeId: google.maps.MapTypeId.ROADMAP
  13. };
  14.  
  15. var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  16.  
  17. var myLatlng1 = new google.maps.LatLng(51.764377, 5.5193147);
  18. var image1 = 'images/ik-zelf.png';
  19. var Marker1 = new google.maps.Marker({
  20. position: myLatlng1,
  21. map: map,
  22. icon: image1,
  23. title: 'Janneke'
  24. });
  25.  
  26. var myLatlng2 = new google.maps.LatLng(51.764376, 5.5193148);
  27. var image2 = 'images/ik-zelf.png';
  28. var Marker2 = new google.maps.Marker({
  29. position: myLatlng2,
  30. map: map,
  31. icon: image2,
  32. title: 'Liza'
  33. });
  34.  
  35. var myLatlng3 = new google.maps.LatLng(51.764375, 5.5193149);
  36. var image3 = 'images/ik-zelf.png';
  37. var Marker3 = new google.maps.Marker({
  38. position: myLatlng3,
  39. map: map,
  40. icon: image3,
  41. title: 'Jasper'
  42. });
  43.  
  44. }
  45.  
  46. google.maps.event.addDomListener(window, 'load', initialize);
  47. };
  48.  
  49. displayLocation(51.764377, 5.5193148);
  50. </script>



Mijn eigen PHP code:
  1. <?php
  2. $user = explode("|", $_COOKIE['mijnsite']);
  3.  
  4. $query = mysql_query('SELECT id, latitude, longitude FROM site_gebruikers
  5. WHERE
  6. email = "'.mysql_real_escape_string($user[0]).'"
  7. AND
  8. logcode = "'.mysql_real_escape_string($user[1]).'"');
  9. $fetch = mysql_fetch_assoc($query);
  10.  
  11. $lati = $fetch['latitude'];
  12. $long = $fetch['longitude'];
  13.  
  14. $amount = 10;
  15.  
  16. $temp_lat = explode(".", $fetch['latitude']);
  17. $new_lat = $temp_lat[1] - $amount;
  18. $temp_lat = $temp_lat[0].'.'.$new_lat;
  19.  
  20. $temp_lon = explode(".", $fetch['longitude']);
  21. $new_lon = $temp_lon[1] - $amount;
  22. $temp_lon = $temp_lon[0].'.'.$new_lon;
  23.  
  24.  
  25.  
  26. $temp_lat_p = explode(".", $fetch['latitude']);
  27. $new_lat_p = $temp_lat_p[1] + $amount;
  28. $temp_lat_p = $temp_lat_p[0].'.'.$new_lat_p;
  29.  
  30. $temp_lon_p = explode(".", $fetch['longitude']);
  31. $new_lon_p = $temp_lon_p[1] + $amount;
  32. $temp_lon_p = $temp_lon_p[0].'.'.$new_lon_p;
  33.  
  34. $query = 'SELECT id, voornaam, latitude, longitude FROM site_gebruikers
  35. WHERE
  36. (latitude <= "'.$temp_lat_p.'"
  37. AND
  38. latitude >= "'.$temp_lat.'")
  39. AND
  40. (longitude <= "'.$temp_lon_p.'"
  41. AND
  42. longitude >= "'.$temp_lon.'")
  43. AND
  44. email != "'.mysql_real_escape_string($user[0]).'"';
  45.  
  46. $exe = mysql_query($query);
  47. ?>
  48.  
  49. <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
  50. <script language="javascript">
  51. function displayLocation(latitude,longitude)
  52. {
  53. function initialize()
  54. {
  55. var myLatlng = new google.maps.LatLng(latitude, longitude);
  56.  
  57. var mapOptions = {
  58. zoom: 13,
  59. center: myLatlng,
  60. mapTypeId: google.maps.MapTypeId.ROADMAP
  61. };
  62.  
  63. var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  64.  
  65. <?php
  66. $i = 1;
  67.  
  68. while($fetch = mysql_fetch_assoc($exe))
  69. {
  70. $imgQuery = mysql_query('SELECT foto FROM site_fotos
  71. WHERE
  72. gebruikers_id = "'.mysql_real_escape_string($fetch['id']).'"
  73. AND
  74. profiel = 1');
  75. $imgFetch = mysql_fetch_assoc($imgQuery);
  76.  
  77. echo 'var myLatlng'.$i.' = new google.maps.LatLng('.$fetch['latitude'].', '.$fetch['longitude'].');
  78. var image'.$i.' = \'images/ik-zelf.png\';
  79. var Marker'.$i.' = new google.maps.Marker({
  80. position: myLatlng'.$i.',
  81. map: map,
  82. icon: image'.$i.',
  83. title: \''.$fetch['voornaam'].'\'
  84. });
  85.  
  86. ';
  87. $i++;
  88. }
  89. ?>
  90. }
  91.  
  92. google.maps.event.addDomListener(window, 'load', initialize);
  93. };
  94.  
  95. displayLocation(<?=$lati?>, <?=$long?>);
  96. </script>
  97.  
  98. <span id="map-canvas" style="width:100%; height:550px; float:left;"></span>

6 antwoorden

Gesponsorde links
Offline marten - 30/09/2013 15:55
Avatar van marten Beheerder Wil je de uitkomst van je query eens dumpen en hier plaatsen?
Offline Maarten - 30/09/2013 22:51
Avatar van Maarten Erelid Toont hij de icoontjes gewoon niet, of echt de volledige marker niet?

Je bent zeker dat je genoeg uitgezoomd bent om alle markers te zien?
Offline marten - 01/10/2013 07:58
Avatar van marten Beheerder Anders kan het misschien nog een escape verhaal zijn met de quotes zeg maar.
Offline Wijnand - 01/10/2013 16:57
Avatar van Wijnand Moderator Is er een voorbeeld online, zodat we mee kunnen kijken?
Offline GroundZero - 07/10/2013 16:43 (laatste wijziging 07/10/2013 18:54)
Avatar van GroundZero Lid Hoi, sorry voor de late reactie. Nee geen online voorbeeld helaas. Dit omdat de website nog niet online is. Ik zal mijn complete code plaatsen hier.

De query is ook correct, wanneer ik deze gewoon in een loop gooi, zie ik netjes allemaal resultaten te voorschijn komen, ook in de broncode staat alles netjes in de google maps code, alleen word het niet op de kaart weergegeven.

De query is dus correct dat kan ik met 100% zekerheid zeggen.

Mijn volledige code:

  1. <?php
  2. $user = explode("|", $_COOKIE['mijn-website-cookie']);
  3.  
  4. $query = mysql_query('SELECT id, latitude, longitude FROM site_gebruikers
  5. WHERE
  6. email = "'.mysql_real_escape_string($user[0]).'"
  7. AND
  8. logcode = "'.mysql_real_escape_string($user[1]).'"');
  9. $fetch = mysql_fetch_assoc($query);
  10.  
  11. $lati = $fetch['latitude'];
  12. $long = $fetch['longitude'];
  13.  
  14. $amount = 10;
  15.  
  16. $temp_lat = explode(".", $fetch['latitude']);
  17. $new_lat = $temp_lat[1] - $amount;
  18. $temp_lat = $temp_lat[0].'.'.$new_lat;
  19.  
  20. $temp_lon = explode(".", $fetch['longitude']);
  21. $new_lon = $temp_lon[1] - $amount;
  22. $temp_lon = $temp_lon[0].'.'.$new_lon;
  23.  
  24.  
  25.  
  26. $temp_lat_p = explode(".", $fetch['latitude']);
  27. $new_lat_p = $temp_lat_p[1] + $amount;
  28. $temp_lat_p = $temp_lat_p[0].'.'.$new_lat_p;
  29.  
  30. $temp_lon_p = explode(".", $fetch['longitude']);
  31. $new_lon_p = $temp_lon_p[1] + $amount;
  32. $temp_lon_p = $temp_lon_p[0].'.'.$new_lon_p;
  33.  
  34. $query = 'SELECT id, voornaam, latitude, longitude FROM site_gebruikers
  35. WHERE
  36. (latitude <= "'.$temp_lat_p.'"
  37. AND
  38. latitude >= "'.$temp_lat.'")
  39. AND
  40. (longitude <= "'.$temp_lon_p.'"
  41. AND
  42. longitude >= "'.$temp_lon.'")
  43. AND
  44. email != "'.mysql_real_escape_string($user[0]).'"';
  45.  
  46. $exe = mysql_query($query);
  47. ?>
  48.  
  49. <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
  50. <script language="javascript">
  51. function displayLocation(latitude,longitude)
  52. {
  53. function initialize()
  54. {
  55. var myLatlng = new google.maps.LatLng(latitude, longitude);
  56.  
  57. var mapOptions = {
  58. zoom: 13,
  59. center: myLatlng,
  60. mapTypeId: google.maps.MapTypeId.ROADMAP
  61. };
  62.  
  63. var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  64.  
  65. <?php
  66. $i = 1;
  67.  
  68. while($fetch = mysql_fetch_assoc($exe))
  69. {
  70. $imgQuery = mysql_query('SELECT foto FROM site_fotos
  71. WHERE
  72. gebruikers_id = "'.mysql_real_escape_string($fetch['id']).'"
  73. AND
  74. profiel = 1');
  75. $imgFetch = mysql_fetch_assoc($imgQuery);
  76.  
  77. echo 'var myLatlng'.$i.' = new google.maps.LatLng('.$fetch['latitude'].', '.$fetch['longitude'].');
  78. var image'.$i.' = \'images/ik-zelf.png\';
  79. var Marker'.$i.' = new google.maps.Marker({
  80. position: myLatlng'.$i.',
  81. map: map,
  82. icon: image'.$i.',
  83. title: \''.$fetch['voornaam'].'\'
  84. });
  85.  
  86. ';
  87. $i++;
  88. }
  89. ?>
  90. }
  91.  
  92. google.maps.event.addDomListener(window, 'load', initialize);
  93. };
  94.  
  95. displayLocation(<?=$lati?>, <?=$long?>);
  96. </script>
  97.  
  98. <span id="map-canvas" style="width:100%; height:550px; float:left;"></span>


EDIT:
Puur voor de zekerheid nogmaals getest. De query geeft dit weer als ik hem textueel parse:

Citaat:
SELECT id, voornaam, latitude, longitude FROM site_gebruikers WHERE (latitude <= "51.7804091" AND latitude >= "51.7804071") AND (longitude <= "5.5191536" AND longitude >= "5.5191516") AND email != "mijnemail@live.nl"


In mijn loop geeft hij nu ook één naam weer (er is ook maar één iemand in de database nu met testen). Deze word correct weergegeven. Op het moment dat ik nog een persoon toevoeg, dan worden de overige icoontjes niet weergegeven.

De maps code die door PHP gegenereerd word (met één resultaat):

  1. <script language="javascript">
  2. function displayLocation(latitude,longitude)
  3. {
  4. function initialize()
  5. {
  6. var myLatlng = new google.maps.LatLng(latitude, longitude);
  7.  
  8. var mapOptions = {
  9. zoom: 13,
  10. center: myLatlng,
  11. mapTypeId: google.maps.MapTypeId.ROADMAP
  12. };
  13.  
  14. var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  15.  
  16. var myLatlng1 = new google.maps.LatLng(51.7804080, 5.5191526);
  17. var image1 = 'images/ik-zelf.png';
  18. var Marker1 = new google.maps.Marker({
  19. position: myLatlng1,
  20. map: map,
  21. icon: image1,
  22. title: 'Jeroen'
  23. });
  24.  
  25. }
  26.  
  27. google.maps.event.addDomListener(window, 'load', initialize);
  28. };
  29.  
  30. displayLocation(51.7804081, 5.5191526);
  31. </script>


Met meerdere resultaten staat in mijn 1e post... zover ik zie geen fouten maar toch werkt het niet ;)

Komt er dus op neer dat hij maar één market laat zien elke keer en de overige niet...

EDIT:Dit is mijn laatste code met 2 resultaten... misschien dat iemand het werkend krijgt ;) de coordinaten zie je in de code:

Plaatscode: 142276

Het rare is, wanneer ik het niet via PHP doe maar gewoon weg direct er in zet dus bijvoorbeeld:

Citaat:
var markerPos = new google.maps.LatLng(51.7804085, 5.5191510);
var marker = new google.maps.Marker({
position: markerPos,
map: map,
title: 'Hello World!'
});

var markerPos = new google.maps.LatLng(51.7814085, 5.5181510);
var marker = new google.maps.Marker({
position: markerPos,
map: map,
title: 'Hello World 2!'
});

var markerPos = new google.maps.LatLng(51.7824085, 5.5051510);
var marker = new google.maps.Marker({
position: markerPos,
map: map,
title: 'Hello World 2!'
});


Dan werkt het wel prima... hoe kan dit komen?
Offline Thomas - 12/10/2013 16:56 (laatste wijziging 13/10/2013 15:11)
Avatar van Thomas Moderator Krijg je JavaScript foutmeldingen? Misschien wil de browser te snel JavaScript gaan uitvoeren? Of houdt de Google Maps API hier rekening mee? Heb je in PHP output buffering geprobeerd (zodat de hele pagina in 1x wordt doorgestuurd) of in JavaScript een soortement van $(document).ready() (jQuery) constructie? Als je output van PHP precies hetzelfde produceert als de statische code in het bovengenoemde voorbeeld dan gaat er mogelijk iets met timing (het laden van HTML / het uitvoeren van JavaScript) mis? Het kan niet zo zijn dat je met precies dezelfde HTML-output je browser anders reageert. Dan moet er haast iets anders aan de hand zijn (in het voortraject) en ligt dit niet (alleen) aan je HTML-output.

In welke browser is dit aan de hand trouwens? Want blijkbaar gaat er wel eens wat mis in Chrome.

Oh, enne, staat je browser cache UIT 

EDIT: Nog wat mogelijkheden:
- je gebruikt versie 3.exp, moet je daarvoor ook een API- of client-key meegeven (wss heb je die uit je voorbeelden gewist)?
- het domein waarvandaan je deze code test heeft toegang tot de API (wss wel, anders zou je helemaal geen plaatjes zien)?
- het (relatieve) pad naar de plaatjes klopt?
- heb je al geprobeerd een zIndex toe te voegen aan de afbeeldingen, zodat je deze kunt stapelen?
- heb je al geprobeerd om de standaard afbeelding van een marker te gebruiken (verwijder de icon-eigenschap tijdelijk, werkt het dan wel)?

EDIT2: In je laatste voorbeeld gebruik je geen icons, en het werkt dan wel, dat is nog een ander verschil dan het niet-gebruiken-van-PHP. Het ligt dus op een of andere manier aan je icons waarschijnlijk?

EDIT3: Maak je nog gebruik van andere JavaScript libraries zoals jQuery of YUI of iets dergelijks?
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s