Necesita una solución simple de Google Maps; perdido en el laberinto de módulos


15

En primer lugar, permítanme decir que no me importa qué versión de Drupal tendría que usar (6 o 7). Tengo experiencia con ambas versiones, hasta ahora no necesitaba trabajar con Google Maps. Los requisitos son bastante básicos (por lo que entiendo):

1) Tener un nodo para cada empresa que quiero agregar en el mapa

2) En el formulario de edición de nodos, me gustaría agregar una dirección y que se agregue en un mapa personalizado de Google (o tal vez copiar y pegar el enlace de una ubicación de Google Map)

3) Tener una función de búsqueda para encontrar la compañía más cercana para una ubicación determinada

Hay toneladas de módulos diferentes por ahí, y me gustaría señalar la dirección correcta en lugar de mirar a través de más de 15 módulos diferentes solo para finalmente darme cuenta de que necesito escribir un módulo personalizado para mí.

Gracias por adelantado.

Respuestas:


36

He creado una función de Drupal que implementa esto usando OpenLayers (consulte http://drupal.org/project/ol_locator ) o puede usar el siguiente tutorial para configurar el suyo.

  1. Descargue y habilite los siguientes módulos:

  2. Habilitar submódulos:

    • Geofield Map 7.x-1.0-alpha5
    • Vistas UI 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • Vistas de OpenLayers 7.x-2.0-alpha2
  3. Vaya admin/structure/types/addy cree un nuevo tipo de contenido llamado " Location"

  4. Vaya admin/structure/types/manage/location/fieldsy agregue los siguientes campos:

    • Etiqueta: Dirección> Nombre del campo: dirección> Tipo de campo: Dirección postal> Widget: Formulario de dirección dinámica
  5. Seleccione qué países disponibles preferiría de la lista. Déjelo en blanco para permitirlos a todos.

  6. Marque "Formulario de dirección (específico del país)"

    • Nota: Los países y sus campos asociados son manejados por el módulo Campo de dirección. Si no ve su país o si no tiene los campos apropiados, debe presentar un problema con ese módulo http://drupal.org/project/addressfield (Verifique si hay un problema en la cola sobre su país perdido primero antes de publicar)
  7. Etiqueta: Geofield> Nombre del campo: geofield> Tipo de campo: Geofield> Widget: Geocódigo de otro campo

  8. Vaya admin/structure/types/manage/ol_locator_location/displayy cambie la Defaultpantalla de Geofield:

    • Etiqueta: Oculta> Formato: OpenLayers
  9. Haga clic en el ícono de ajustes y seleccione lo siguiente:

    • OpenLayers Preset: Geofield Formater Map> Opciones de datos: Usar geometría completa
  10. Vaya admin/structure/openlayers/layers/settingsy configure lo siguiente:

    • Versión de API de Google Maps: v3.2
  11. Probemos para ver si la geocodificación funciona creando una ubicación de prueba

    • Al crear un tipo de contenido de prueba, asegúrese de estar usando una dirección bien establecida. Si Google no conoce su dirección, tampoco lo sabrá su nuevo sitio.
  12. Vaya admin/structure/views/addy cree una nueva vista con la siguiente información

    • Nombre de la vista: Búsqueda de proximidad> Descripción: muestra ubicaciones geocodificadas en un mapa dinámico para que los usuarios realicen búsquedas de proximidad. > Mostrar: Contenido de tipo: Ubicación ordenada por: Sin clasificar> Continuar y editar
  13. Agregue los siguientes campos y mantenga sus valores predeterminados, excepto donde se indique:

    1. Contenido: Título > Marcar Crear una etiqueta: "Título"
    2. Contenido: Dirección (Dirección)
    3. Contenido: Geofield (Geofield)> Excluir de la pantalla
    4. Proximidad: Distancia (Distancia)
  14. Agregue los siguientes criterios de filtro a los existentes:

    • Contenido: publicado (sí) y
    • Contenido: Tipo (= Ubicación)
    • Proximidad: Gran círculo (expuesto)> Exponga este filtro a los visitantes, para permitirles cambiarlo> Etiqueta: Proximidad> agregue "10" al campo Valor> Desbloquear unidad de medida> Desbloquear ubicación
  15. Encabezado > Global: Área de texto> Mostrar incluso si la vista no tiene resultado

    • "Encuentre una ubicación cerca de usted. Puede buscar utilizando su ciudad, provincia / estado o un código postal / postal".
  16. Comportamiento sin resultados > Global: área de texto y agregue lo siguiente:

    • "Lo sentimos, no se encontraron resultados.
      1.) Verifique la precisión de su código postal / postal
      2.) Verifique la ortografía de su ciudad, provincia o estado
      3.) Aumente la distancia de proximidad"
  17. Enviar el texto del botón : Buscar

  18. Agregar nueva pantalla: " Superposición de datos OpenLayers "

  19. Formato :

    • Configuración> Aplicar esta capa abierta (anular)> Fuentes de datos del mapa: WKT> Campo WKT: Geofield> Campo Descripción>> Aplicar (esta pantalla)
  20. Guarda la vista

  21. Ir admin/structure/openlayers/maps

  22. Clonar el mapa predeterminado

  23. Información general> Nombre: location_map. Título: Mapa de ubicación> Descripción del mapa: este es el mapa de ubicación predeterminado.

  24. Capa y estilos> Capas superpuestas (seleccione la vista que acabamos de crear) Ubicaciones "Activado" "Activado" Haga lo mismo para Marcador de posición para Formateador Geofield

  25. Comportamientos> Ventana emergente (debe volver y "Seleccionar capa para aplicar ventanas emergentes". Más adelante)> Zoom a capa "Seleccionar capa para hacer zoom cuando se carga el mapa" > Nivel de zoom de punto: 20 ****

  26. Guardar el mapa

  27. Regrese a la vista que acabamos de crear

    • admin/structure/views/view/proximity_search/edit
  28. Agregar pantalla "Página"

    • Camino: /locator
    • Formato: Mapa de OpenLayers> Aplicar (esta pantalla)> Mapa: Mapa de ubicaciones (El que acabamos de crear en OpenLayers)> Aplicar
  29. Guarde la vista (ahora deberíamos ver nuestro mapa en el panel de vista previa en la parte inferior de nuestra vista, con cualquier contenido de prueba

  30. Añadir pantalla: "archivo adjunto"

    • Formato: Tabla> Aplicar (esta pantalla)
    • Adjuntar a: Página
    • Heredar filtros expuestos: Sí
    • Elimine el encabezado> Global: área de texto> Aplicar (esta pantalla)
    • Elementos para mostrar: muestra un número específico de elementos | 5 artículos
    • Heredar localizador: Sí
    • Renderizador de buscapersonas: sí
  31. Guardar vista

  32. Comportamientos> Pop Up> Capas> fence_search_openlayers_1 (El mapa de Openlayers de vistas que acabamos de crear)

  33. Zoom a capa> Amplía a la extensión de una capa dada en la carga del mapa. >proximity_search_openlayers_1

  34. Regrese a admin/structure/types/manage/location/display> haga clic en el ícono de ajustes y cambie Open Layers Preset al Mapa de ubicación que acabamos de crear> Actualizar> Guardar

Voila! Hecho


1
su respuesta es tan detallada que quiero ofrecerle una recompensa y recompensarla automáticamente: D
Probaré

No es solo una respuesta, es un tutorial :)
Codium

+1, pero es importante tener en cuenta que la ol_locatorfunción puede ser defectuosa con las versiones más nuevas de módulos, y no hay restricciones de número de versión. Lo experimenté (desafortunadamente). Pero su respuesta es muy bien detallada.
Sk8erPeter

Si el módulo tiene errores, publíquelo en la cola de problemas de mi módulo con exactamente lo que no funciona (detalles completos). No tengo problemas para solucionar los problemas, pero necesito saber sobre ellos. :)

Acabo de probar OpenLayers Locator y funciona muy bien y como se anuncia. Gracias @nicoz.
Nigel Waters el

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.