Vra

Ek probeer om die Google Hoogte API te gebruik met die getJSON funksie van jQuery.

Ek gebruik hierdie kode wat gebruik JSONP:

jQuery.getJSON("http://maps.googleapis.com/maps/api/elevation/json?locations=23.444,45.4545&sensor=false&jsoncallback=?", function(json){
    alert("a");
});

Ek kan sien in Firebug dat die GET-versoek korrek te stuur en ontvang ek die korrekte antwoord uit Google:

{
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
}

Maar ek het nooit die Alert en ek kry hierdie fout van Firebug:

invalid label
"status": "OK",\n

Ek gebruik die Google Maps API v2 so ek die opbou connato gebruik in metode.

Is daar enige manier om die opstand met die Google Hoogte API te kry via 'n AJAX versoek en sonder die skep van 'n volmag?

Dankie vir jou hulp.

Benjamin

Was dit nuttig?

Oplossing 3

Die Google opstand API ondersteun nie JSONP (Met dank aan Nick Craver vir die verduideliking) en ek kan die ElevationService wat is slegs beskikbaar vir die v3 Google Maps API gebruik nie.

Dus het ek besluit om 'n ander webservice gebruik om die hoogte te kry:

http://www.geonames.org/export/web-services. html # astergdem

Byvoorbeeld: http://ws.geonames.org/astergdemJSON?lat=X&lng = Y & terugbel = ?

Dit webservice ondersteuning JSONP, so dit kan wees gebruik maklik met jQuery en die getJSON metode.

Benjamin

Ander wenke

Dit API ondersteun nie JSONP, dit terugkeer into net ... so ja sal jy nodig het om 'n gevolmagtigde in hierdie geval.

Om duidelik te wees, die korrekte reaksie sou wees as volg:

someFunction({
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
})

jQuery Vervang callback=? met callback=someFunction, maar Google het nie hierdie parameter gebruik sedert hierdie diens ondersteun nie JSONP ... so die probleem is wat jy effektief om dit te doen:

<script type="text/javascript">
{
  "status": "OK",
  "results": [ {
    "location": {
      "lat": 23.4440000,
      "lng": 45.4545000
    },
    "elevation": 816.7996216
  } ]
}
</script>

Watter resultate in 'n fout, want dit is nie geldig JavaScript ... jy 'n ongeldige etiket fout. As dit die funksie wrapper daar gehad het, dit sal geldig en dit wat funksie jQuery gemaak het uit te voer (van jou success terugbel).

Jy moet die ligginggewing ElevationService klas gebruik van die JavaScript API. Daar is geen behoefte om 'n gevolmagtigde.

http://code.google.com/apis/ kaarte / dokumentasie / javascript / reference.html # ElevationService

As @Chris Broadfoot gesê, is daar 'n spesiale klas vir daardie in API v3 'N Beter voorbeeld hier https://developers.google.com/maps/documentation/javascript/elevation Jy hoef nie te gaan met JSONP nie 'n ander diens.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top