Hai bisogno di una semplice soluzione di Google Maps; perso nel labirinto di moduli


15

Prima di tutto, lasciatemi dire che non mi interessa quale versione di Drupal dovrei usare (6 o 7). Ho esperienza con entrambe le versioni fino ad ora non avevo bisogno di lavorare con Google Maps. I requisiti sono piuttosto basilari (da quello che ho capito):

1) Avere un nodo per ogni azienda che voglio aggiungere nella mappa

2) Nel modulo di modifica del nodo vorrei aggiungere un indirizzo e farlo aggiungere in una mappa google personalizzata (o forse copiare e incollare il collegamento di una posizione della mappa google)

3) Avere una funzione di ricerca per trovare la compagnia più vicina per una data posizione

Ci sono tonnellate di moduli diversi là fuori, e vorrei essere indirizzato nella giusta direzione invece di guardare oltre 15 moduli diversi solo per rendermi finalmente conto che ho bisogno di scrivere un modulo personalizzato per me stesso.

Grazie in anticipo.

Risposte:


36

Ho creato una funzione Drupal che implementa questo usando OpenLayers (vedi http://drupal.org/project/ol_locator ) oppure puoi usare il seguente walk-through per impostare il tuo.

  1. Scarica e abilita i seguenti moduli:

  2. Abilita sottomoduli:

    • Mappa Geofield 7.x-1.0-alpha5
    • Visualizza l'interfaccia utente 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayers Views 7.x-2.0-alpha2
  3. Vai a admin/structure/types/adde crea un nuovo tipo di contenuto chiamato " Location"

  4. Vai a admin/structure/types/manage/location/fieldse aggiungi i seguenti campi:

    • Etichetta: Indirizzo> Nome campo: indirizzo> Tipo campo: Indirizzo postale> Widget: Modulo indirizzo dinamico
  5. Seleziona i paesi disponibili che preferisci dall'elenco. Lasciare vuoto per consentirli tutti.

  6. Seleziona "Modulo indirizzo (specifico per Paese)"

    • Nota: i paesi e i loro campi associati sono gestiti dal modulo Campo indirizzo. Se non vedi il tuo paese o se non ha i campi appropriati, devi presentare un problema con quel modulo http://drupal.org/project/addressfield (Verifica se c'è un problema nella coda relativo al tuo Paese mancante prima di pubblicare)
  7. Etichetta: Geofield> Nome campo: geofield> Tipo di campo: Geofield> Widget: Geocode da un altro campo

  8. Vai a admin/structure/types/manage/ol_locator_location/displaye modifica il Defaultdisplay per Geofield:

    • Etichetta: Nascosto> Formato: OpenLayers
  9. Fai clic sull'icona a forma di ingranaggio e seleziona quanto segue:

    • Preset OpenLayers: Geofield Formater Map> Opzioni dati: Usa geometria completa
  10. Vai a admin/structure/openlayers/layers/settingse imposta quanto segue:

    • Versione API di Google Maps: v3.2
  11. Facciamo un test per vedere se il geocodifica funziona creando una posizione di test

    • Quando si crea un tipo di contenuto di prova, assicurarsi di utilizzare un indirizzo ben definito. Se Google non è a conoscenza del tuo indirizzo, non lo sarà nemmeno il tuo nuovo sito.
  12. Vai a admin/structure/views/adde crea una nuova vista con le seguenti informazioni

    • Visualizza nome: Ricerca di prossimità> Descrizione: visualizza posizioni geocodificate su una mappa dinamica affinché gli utenti possano effettuare ricerche di prossimità. > Mostra: contenuto del tipo: posizione ordinata per: non ordinata> Continua e modifica
  13. Aggiungi i seguenti campi e mantieni i loro valori predefiniti, tranne dove indicato:

    1. Contenuto: Titolo > Seleziona Crea un'etichetta: "Titolo"
    2. Contenuto: Indirizzo (Indirizzo)
    3. Contenuto: Geofield (Geofield)> Escludi dal display
    4. Prossimità: distanza (distanza)
  14. Aggiungi i seguenti criteri di filtro all'esistente:

    • Contenuto: pubblicato (Sì) e
    • Contenuto: Tipo (= Posizione)
    • Prossimità: grande cerchio (esposto)> Esporre questo filtro ai visitatori, per consentire loro di modificarlo> Etichetta: Prossimità> aggiungi "10" al campo Valore> Sblocca unità di misura> Sblocca posizione
  15. Intestazione > Globale: area di testo> Visualizza anche se la vista non ha risultati

    • "Trova una posizione vicino a te. Puoi cercare utilizzando la tua città, provincia / stato o un codice postale / postale."
  16. Nessun comportamento relativo ai risultati > Globale: area di testo e aggiungere quanto segue:

    • "Siamo spiacenti, non sono stati trovati risultati.
      1.) Verifica l'esattezza del tuo codice postale
      2.) Controlla l'ortografia della tua città, provincia o stato
      3.) Aumenta la distanza di prossimità"
  17. Testo pulsante di invio : Cerca

  18. Aggiungi nuovo display: " OpenLayers Data Overlay "

  19. Formato :

    • Impostazioni> Applica questo openlayer (sostituzione)> Origini dati mappa: WKT> Campo WKT: Geofield> Campo descrizione>> Applica (questo display)
  20. Salva la vista

  21. Vai a admin/structure/openlayers/maps

  22. Clona la mappa predefinita

  23. Informazioni generali> Nome: location_map. Titolo: Mappa della posizione> Mappa Descrizione: questa è la mappa della posizione predefinita.

  24. Livello e stili> Livelli di sovrapposizione (seleziona la vista che abbiamo appena creato) Posizioni "Abilitato" "Attivato" Fai lo stesso per Segnaposto per Geofield Formatter

  25. Comportamenti> Pop-up (devono tornare indietro e "Seleziona livello per applicare i popup." In seguito)> Zoom su livello "Seleziona livello su cui ingrandire quando viene caricata la mappa" > Livello di zoom punto: 20 ****

  26. Salva la mappa

  27. Torna alla vista che abbiamo appena creato

    • admin/structure/views/view/proximity_search/edit
  28. Aggiungi display "Pagina"

    • Sentiero: /locator
    • Formato: Mappa OpenLayers> Applica (questa schermata)> Mappa: Mappa delle posizioni (quella appena creata in OpenLayers)> Applica
  29. Salva la vista (Ora dovremmo vedere la nostra mappa nel riquadro di anteprima nella parte inferiore della nostra vista, con qualsiasi contenuto di prova

  30. Aggiungi display: "allegato"

    • Formato: Tabella> Applica (questo display)
    • Allega a: Pagina
    • Eredita i filtri esposti: Sì
    • Rimuovi intestazione> Globale: area di testo> Applica (questo display)
    • Elementi da visualizzare: visualizza un numero specificato di elementi | 5 elementi
    • Eredita cercapersone: Sì
    • Render pager: Sì
  31. Salva vista

  32. Comportamenti> Pop-up> Livelli> prossimità_search_openlayers_1 (la mappa Openlayers delle viste che abbiamo appena creato)

  33. Zoom su livello> Ingrandisce l'estensione di un determinato livello durante il caricamento della mappa. >proximity_search_openlayers_1

  34. Torna a admin/structure/types/manage/location/display> fai clic sull'icona a forma di ingranaggio e modifica la preimpostazione Apri livelli nella Mappa della posizione che abbiamo appena creato> Aggiorna> Salva

Ecco! Fatto


1
la tua risposta è così dettagliata che voglio mettere una taglia e ricompensarla automaticamente: D Ora proverò i passaggi e ti farò sapere come ha funzionato
F1234k

Non è solo una risposta, è un tutorial :)
Codium,

+1, ma è importante notare che la ol_locatorfunzione può essere errata con le versioni più recenti dei moduli e non ci sono restrizioni al numero di versione. L'ho vissuto (purtroppo). Ma la tua risposta è davvero ben dettagliata.
Sk8erPeter,

Se il modulo è difettoso, si prega di pubblicarlo nella coda di emissione del mio modulo con esattamente ciò che non funziona (dettagli completi). Non ho problemi a risolvere i problemi, ma devo conoscerli. :)

Ho appena testato OpenLayers Locator e funziona molto bene e come pubblicizzato. Grazie @nicoz.
Nigel Waters,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.