Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Google Maps] Hoe kan men een stad of steden markeren?

Pagina: 1
Acties:

  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01 15:19
Ik heb een Google Maps web applicatie geintegreerd op een website met behulp van de Google Maps API.
Nu wil ik enkele honderden steden markeren. Ik heb alleen de namen van de steden en niet de longitude en latitude coordinaten.
Is er een manier om via een stadsnaam een marker te plaatsen op de juiste plek op de Google Maps kaart? Zo ja, hoe?
Ik heb op Google informatie erover proberen te vinden en ook in de GOT search, maar heb niets kunnen vinden, echter ik meen op enkele websites dit wel gezien te hebben, dus ik vermoed dat het mogelijk is.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-11 23:16

TeeDee

CQB 241

Afaik wordt het zonder geocoding (of een handmatige actie van de client/user) vrij lastig.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01 15:19
Op maps.google.com kan men zoeken op stadsnaam en vervolgens toont Google Maps de juiste stad. Dus ik vermoed dat Google die informatie in de database heeft staan.(De link van stadsnamen met longitude en latitude)

Wat ik hoop te vinden is een functie of klasse waarin ik de stadsnaam als argument kan geven voor de positie van de marker. Of dat ik de longitude en latitude ge-returned krijg en dat dan als positie voor de marker gebruik.

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 12:05

orf

Google doet gewoon geocoding. Zoek maar eens in de documentatie van de API

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-11 23:16

TeeDee

CQB 241

Je beste kans is te vinden in de documentatie.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01 15:19
Ik heb het uitgezocht en het volgende stukje code haalt de longitude en latitude coordinaten op voor een stad in een land.
Het werkt als ik dit stukje code kopieer zodat de coordinaten voor enkele steden beschikbaar zijn.
Ok, dat werkt dus goed.
Dus wanneer ik de coordinaten heb van die steden dan zet ik op elke coordinaat een marker.
Dat werkt ook voor enkele steden.
Maar zodra ik dit doe voor 400 steden, dan wordt een marker niet geplaatst voor elke stad. Het lijkt dan alsof een aantal steden overgeslagen worden.
Ik weet niet waarom het gebeurt, maar misschien komt het omdat de data voor de coordinaten dus 400 keer snel aangevraagd moet worden bij Google.
Hij lijkt er gewoon een aantal over te slaan. Ik vermoed niet dat dit komt omdat Google de coordinaten niet heeft voor die steden, want steden die dan soms missen zijn Tokyo en Kaapstad. Vrij grote steden dus. En elke keer wanneer de pagina ververst dan missen er ook andere steden dan voorheen.

JavaScript:
code:
1
2
3
4
5
6
//Maak geocoder object aan
geocoder = new GClientGeocoder();

//Vraag de coordinaten op voor de stad en roep de addToMap functie aan om een marker te plaatsen op die coordinaten
//Deze regel wordt 400 keer uitgevoerd voor verschillende steden
geocoder.getLocations("stad, land", addToMap);

[ Voor 25% gewijzigd door Arcane Apex op 23-05-2008 02:40 ]


  • Arcane Apex
  • Registratie: Juni 2003
  • Laatst online: 30-01 15:19
Ik heb een error kunnen vinden welke optreedt tijdens executie welke zou kunnen verklaren waarom sommige markers niet geplaatst worden, namelijk:

Error: response.Placemark is undefined

Waarom deze error optreedt weet ik niet niet, echter Placemark maakt deel uit van de functie die aangeroepen wordt om de markers te plaatsen, namelijk "addToMap".

Zie hier de functie addToMap in welke de markers worden geplaatst voor elke stad(coordinaten):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function addToMap(response)
{
        // Retrieve the object
        place = response.Placemark[0];

        // Retrieve the latitude and longitude
        point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
        
        // Create a marker
        marker = new GMarker(point);

        // Add the marker to map
        map.addOverlay(marker);
}

[ Voor 8% gewijzigd door Arcane Apex op 23-05-2008 04:12 ]


  • Semyon
  • Registratie: April 2001
  • Laatst online: 10:33
Als het dezelfde 400 steden zijn elke keer, kan je dan niet je scriptje een keer draaien en het resultaat zelf in een tabel opslaan?
Scheelt alle volgende keren niet alleen Google rekenkracht, maar ook de gebruiker bandbreedte.

Je bent dan van het probleem af dat er telkens andere steden missen. En omdat jet het met je scriptje kunt doen (misschien 100x per keer) is het ook niet zoveel werk?

Only when it is dark enough, can you see the stars


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 18-11 23:16

TeeDee

CQB 241

Controleer eens of response != null is? Dan hoef je daar niet naar te kijken in ieder geval.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Met 400 requests per pageview zit je erg snel aan de dagelijkse limiet die Google stelt aan de geocode functie. Dat zijn er nl. maar 15.000 per dag (38 requests)

Kijk ook eens naar http://geonames.org. Staat een kant en klaar te downloaden bestand met onder andere alle plaatsnamen van de wereld met coordinaten.
Pagina: 1