2010-07-13 3 views
6

Mi hanno dato alcune polilinee codificate da visualizzare su una mappa di google. Comunque sto usando JQuery per molte delle funzioni front-end e ora sto cercando di trovare la sintassi corretta per visualizzare le polilinee codificate usando JQuery. La sintassi standard per l'aggiunta di una polilinea codificata èPolilinee codificate usando JQuery

var polyline = new GPolyline.fromEncoded({ 
    color: "#0000ff", 
    weight: 4, 
    opacity: 0.8, 
    points: "_gkxEv}|vNM]kB}B}@[email protected]@[email protected]?c", 
    levels: "[email protected]@[email protected]@?D?CA?B", 
    zoomFactor: 2, 
    numLevels: 18 
}); 
map.addOverlay(polyline); 

Ovviamente questo non funziona con JQuery. per aggiungere una polilinea normale con JQuery usereste

new google.maps.Polyline({ 
      path: stationPathCoordinates1, 
      strokeColor: "#20B5B3", 
      strokeOpacity: 1.0, 
      strokeWeight: 4 

Dove StationPathCoordinates è la matrice di una lunga e dorsali. Ora ho questo array in una polilinea codificata. Ho pensato che potrebbe essere nuovo google.maps.Polyline.fromEncoded ma questo non funziona. Qualcuno conosce la sintassi per questo in JQuery o se è anche possibile?

Grazie in anticipo

+3

Aggiunta una taglia per vedere se potrei aiutarti a ottenere qualche risposta qui :-) –

+1

Senza creare un esempio, non sono sicuro del perché il codice originale fallirebbe 'con jQuery'. In generale, jQuery è solo una libreria di funzioni che ti aiutano a riutilizzare il codice in modo neutro da un browser e non dovrebbe influire sulla tua capacità di utilizzare il codice javascript "normale". Ci sono, naturalmente, problemi che riguardano l'uso di jQuery del simbolo '$', quindi qualcosa di simile potrebbe essere il caso qui. Mi scuso se sbaglio, ma vedo sempre più domande che si riferiscono a jQuery, quando l'inclusione nella discussione è completamente ingiustificata. – belugabob

+0

grazie Andy! belugabob - la sintassi javascript originale per questo causa un errore che firebug descrive come una "funzione inesistente", quindi perché sto assumendo che la sintassi sia diversa quando si utilizza il framework JQuery – RichW

risposta

5

Come @belugabob rilevare già, non ci dovrebbe essere alcun motivo di conflitti con jQuery in generale, mentre utilizzando le API come le API di Google Maps JavaScript.

Detto questo, e senza vedere un esempio completo, posso solo dedurre quanto segue:

Quindi, nel caso in cui è necessario mantenere utilizzando polilinee codificati avete due opzioni:

  1. continuare ad utilizzare l'API V2, il che implica rendendo il vostro primo lavoro frammento di codice come dovrebbe ; è necessario fornire maggiori dettagli quindi per noi di capire cosa c'è che non va con il codice, due punti in anticipo anche se (come jQuery è molto probabilmente non la colpa qui!):

    • ipotesi migliore: il Il mix della versione API e il tuo commento sulla domanda Belugababs suggeriscono che potresti semplicemente mancare alcuni o includere le dipendenze sbagliate!

    • Un'altra osservazione: almeno secondo lo Interactive Polyline Encoder Utility i punti e i livelli codificati nei primi frammenti di codice non corrispondono.

  2. aggiornamento alla API V3, che implica decodifica tuoi polilinee codificati a un Array o MVCArray di LatLng. Non sono a conoscenza di un esempio ufficiale, ma per un punto di partenza è possibile esaminare Esas answer all'interno del thread Encoded polylines?, che punta verso la funzione decodeLine() nel codice sorgente dell'utilità Google Polyline nonché un decodificatore di esempio.

Buona fortuna!

+0

grazie Steffen, guardando il codice che ho ereditato più a fondo c'era un misto di v2 e v3 api. Ho rimosso tutto il codice v2 e migrato alla v3 e ho usato le polilinee standard fino a quando non sono supportate nella v3 dell'api. – RichW

+0

Grazie per aver risposto alla domanda per @RichW. Bounty premiato :-) –

+1

@Andy - grazie per aver reso questa indagine ancora più utile e aver aiutato RichW così :) –