login  Naam:   Wachtwoord: 
Registreer je!
 Forum

google maps (Opgelost)

Offline prienstra - 02/08/2008 16:39
Avatar van prienstraMySQL interesse Goede middag,
Ik heb een google maps waar diverse markers op staan. Alleen worden de tekstballonen niet goed geladen. Maps geeft voor alle markers dezelfde ballontekst (in dit geval $naam)

Weet iemand de fout?


Plaatscode: 13973

14 antwoorden

Gesponsorde links
Offline gothmog - 02/08/2008 18:06 (laatste wijziging 02/08/2008 18:12)
Avatar van gothmog Lid Je hebt in de load functie (je moet om beide variabele quotes):
  1. showAddress('".$street."', '".$city."');


Terwijl je bij showadress maar 1 ding hebt:
  1. function showAddress(address)


Moet je even een tweede ding aan toevoegen:
  1. function showAddress(address, city)


Vervolgens heb je in de marker tekstballon een variabele $naam. Maar die staat niet in een while of iets dergelijks, weet ook niet waar je die naam vandaan haalt. Als je die naam wilt gebruiken die je in de while van de load functie hebt staan moet je het volgende doen:
Ik zag net dat je city niet gebruikt dus function showAdrress kan als volgt:
  1. function showAddress(address, naam)


En die roep je aan (quotes per variabele):
  1. echo "showAddress('".$street."', '".$naam."');";


Je marker wordt als volgt, naam haalt die uit function showAddress:
  1. marker.openInfoWindowHtml(naam);



Kortom, hier de verbeterde versie:
http://www.plaatscode.be/13982/
Offline prienstra - 03/08/2008 11:50 (laatste wijziging 05/08/2008 09:05)
Avatar van prienstra MySQL interesse Ik gebruik onderstaande google maps code.

Er zijn soms nogal wat uiteenlopende makers en soms veel markers op 1 plaats. Is er een mogelijkheid dat google maps zelf ziet waar de markers allemaal zijn en dan zelf een zoom en center functie uitkiest (als alle markers in 1 plaats zijn ingezoomd, als er door de hele provincie zijn uitgezoomd).




Plaatscode: 14270
Offline marten - 05/08/2008 09:13
Avatar van marten Beheerder Heb je een momentje. Dan zal ik even mijn code erbij zoeken. Ik had het namelijk voor elkaar.
Offline prienstra - 05/08/2008 09:23
Avatar van prienstra MySQL interesse oke, thanks!
Offline marten - 05/08/2008 09:33
Avatar van marten Beheerder
  1. <?php
  2. $bedrijven['1234AA'] = array(
  3. 'bedrijfsnaam' => 'Sitemasters',
  4. 'b_adres' => 'Sima HQ laan 21',
  5. 'b_postcode' => '1234AA',
  6. 'b_plaats' => 'Woonplaats',
  7. 'p_postbus' => 'postbus 1',
  8. 'p_postcode' => '1234ZG',
  9. 'p_plaats' => 'Woonplaats',
  10. 'email' => 'info@sitemasters.be',
  11. 'website' => 'www.sitemasters.be',
  12. 'telefoon' => '0123-456789',
  13. 'fax' => '0123-456789',
  14. );
  15.  
  16. $postcode = $_POST['postcode'];
  17.  
  18. $bereik = 200;
  19. $bereik_start = $postcode - $bereik;
  20. $bereik_eind = $postcode + $bereik;
  21.  
  22. foreach ($bedrijven as $pstcd => $array) {
  23. if (!isset($first)) {
  24. $first = $pstcd;
  25. }
  26. $last = $pstcd;
  27. }
  28.  
  29. if ($bereik_start <= $first) {
  30. $bereik_start = $first;
  31. $bereik_eind = $first + $bereik;
  32. }
  33. elseif ($bereik_eind >= $last) {
  34. $bereik_start = $last;
  35. $bereik_start = $last - $bereik;
  36. }
  37.  
  38. while (getThem($bedrijven, $map, $bereik_start, $bereik_eind) == 0) {
  39. $bereik_start -= $bereik;
  40. $bereik_eind += $bereik;
  41. }
  42.  
  43. function getThem($bedrijven, $map, $bereik_start, $bereik_eind) {
  44. $maps = '';
  45. $aantal = 0;
  46. foreach ($bedrijven as $pstcd => $array) {
  47. $depost = substr($pstcd, 0, 4);
  48. if ($depost >= $bereik_start && $depost <= $bereik_eind) {
  49. $map->addMarkerByAddress($array['b_adres'].' '.$array['b_plaats'], $array['bedrijfsnaam'], '<a href="http://'.$array['website'].'">'.$array['bedrijfsnaam'].'</a><br>'.$array['b_adres'].'<br>'.$array['p_postcode'].' '.$array['b_plaats'].'<br>Tel. '.$array['telefoon'].'<br>Fax '.$array['fax'].'<br><a href="mailto:'.$array['email'].'">'.$array['email'].'</a><br><a href="http://'.$array['website'].'">'.$array['website'].'</a><br><br>');
  50. $aantal++;
  51. }
  52. }
  53. return $aantal;
  54. }
  55. ?>
Offline prienstra - 05/08/2008 10:01
Avatar van prienstra MySQL interesse Mij is de code niet geheel duidelijk. Heb je wellicht een werkend voorbeeld?
Offline marten - 05/08/2008 10:17
Avatar van marten Beheerder http://www.cdsv...subpage=14
Offline prienstra - 05/08/2008 13:58 (laatste wijziging 05/08/2008 14:01)
Avatar van prienstra MySQL interesse Bedankt voor het opzoeken, maar de code is helaas niet wat ik bedoel. In de voorbeeld url gebeurt wel wat ik bedoel.
Als je bv. postcode 1225 gebruikt is maps meer ingezoomd dan wanneer je postcode 6336 gebruikt.
Om die autozoom en de auto setcenter in het voorbeeld, dan gaat het om.
Offline marten - 05/08/2008 13:59
Avatar van marten Beheerder Dat wordt gemaakt met het bereik in de code. De code is rechtstreeks van die website omdat ik de website zelf gebouwd heb voor het bedrijf waar ik werk.
Offline prienstra - 05/08/2008 14:09
Avatar van prienstra MySQL interesse Als ik op postcode 6336 zoek op je genoemde website en dan na de broncode van de website kijk staat er:

map.setCenter(new GLatLng(51.972985, 5.667816), 16, G_NORMAL_MAP);

het gaat om een code die bepaald wat de coordinaten (51.972985, 5.667816) berekend en de zoom (16)
Offline marten - 05/08/2008 14:31
Avatar van marten Beheerder http://www.plaatscode.be/14276/

Hierbij de class variabelen. Misschien zijn er verschillen?
Offline prienstra - 05/08/2008 18:02
Avatar van prienstra MySQL interesse bedankt voor je code. Helaas heb ik er niks aan.
Je bekijkt de grootste coordinaat en de kleinste coordinaat en deelt dat door twee. Mijn script werkt zonder coordinaten, maar met geocoding. Ik zoek wel even verder.
Offline Gerard - 05/08/2008 19:12
Avatar van Gerard Ouwe rakker Geocoding doet niets anders dan de coördinaten bij een adres zoeken, daarna dien je alles toch echt met die coördinaten af te handelen.
Offline prienstra - 05/08/2008 19:39 (laatste wijziging 06/08/2008 10:08)
Avatar van prienstra MySQL interesse Het is gelukt met:

  1. var bounds = new GLatLngBounds();
  2.  
  3. map.setCenter(new GLatLng(0,0),0);
  4.  
  5. bounds.extend(point);
  6.  
  7. map.setZoom(map.getBoundsZoomLevel(bounds));
  8. map.setCenter(bounds.getCenter());


Nu bekijkt google maps eerste alle markers en kiest daarna een automatische zoomlevel en een centre zodat alle markers erop staan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.239s