Precisa de uma solução simples do Google Maps; perdido no labirinto de módulos


15

Antes de tudo, deixe-me declarar que não me importo com a versão do Drupal que devo usar (6 ou 7). Tenho experiência com as duas versões, mas não precisava trabalhar com o Google Maps até agora. Os requisitos são bem básicos (pelo que entendi):

1) Ter um nó para cada empresa que eu quero adicionar no mapa

2) No formulário de edição do nó, gostaria de adicionar um endereço e adicioná-lo em um mapa do Google personalizado (ou talvez copiar e colar o link de um local do mapa do Google)

3) Ter uma função de pesquisa para encontrar a empresa mais próxima para um determinado local

Existem toneladas de módulos diferentes por aí, e eu gostaria de ser direcionado para a direção certa, em vez de procurar mais de 15 módulos diferentes apenas para finalmente perceber que preciso escrever um módulo personalizado para mim.

Desde já, obrigado.

Respostas:


36

Criei um recurso Drupal que implementa isso usando o OpenLayers (consulte http://drupal.org/project/ol_locator ) ou você pode usar o seguinte passo a passo para configurar seu próprio.

  1. Faça o download e ative os seguintes módulos:

  2. Ativar submódulos:

    • Mapa Geofield 7.x-1.0-alpha5
    • Exibições da interface do usuário 7.x-3.0-rc1
    • Interface do usuário do OpenLayers 7.x-2.0-alpha2
    • Visualizações OpenLayers 7.x-2.0-alpha2
  3. Vá para admin/structure/types/adde crie um novo tipo de conteúdo chamado " Location"

  4. Vá para admin/structure/types/manage/location/fieldse adicione os seguintes campos:

    • Rótulo: Endereço> Nome do campo: endereço> Tipo de campo: Endereço postal> Widget: formulário de endereço dinâmico
  5. Selecione os países disponíveis que você prefere na lista. Deixe em branco para permitir todos eles.

  6. Desmarque "Formulário de endereço (específico do país)"

    • Nota: Os países e seus campos associados são tratados pelo módulo Addressfield. Se você não encontrar seu país ou se não tiver os campos apropriados, precisará registrar um problema com esse módulo http://drupal.org/project/addressfield (verifique se há algum problema na fila sobre o seu primeiro país ausente antes da postagem)
  7. Rótulo: Campo geográfico> Nome do campo: campo geográfico> Tipo de campo: Campo geográfico> Widget: Código geográfico de outro campo

  8. Vá para admin/structure/types/manage/ol_locator_location/displaye altere a Defaultexibição do Geofield:

    • Rótulo: Oculto> Formato: OpenLayers
  9. Clique no ícone de roda dentada e selecione o seguinte:

    • Predefinição do OpenLayers: Mapa do formatador de campo geográfico> Opções de dados: Usar geometria completa
  10. Vá para admin/structure/openlayers/layers/settingse defina o seguinte:

    • Versão da API do Google Maps: v3.2
  11. Vamos testar para ver se a geocodificação está funcionando, criando um local de teste

    • Ao criar um tipo de conteúdo de teste, verifique se você está usando um endereço bem estabelecido. Se o Google não souber seu endereço, seu novo site também não.
  12. Vá para admin/structure/views/adde crie uma nova visualização com as seguintes informações

    • Nome da exibição: Pesquisa por proximidade> Descrição: exibe locais geocodificados em um mapa dinâmico para os usuários fazerem pesquisas por proximidade. > Mostrar: Conteúdo do tipo: Local classificado por: Sem classificação> Continuar e editar
  13. Adicione os seguintes campos e mantenha seus valores padrão, exceto onde indicado:

    1. Conteúdo: Título > Desmarque Crie um rótulo: "Título"
    2. Conteúdo: Endereço (Endereço)
    3. Conteúdo: Geofield (Geofield)> Excluir da exibição
    4. Proximidade: Distância (Distância)
  14. Adicione os seguintes critérios de filtro aos existentes:

    • Conteúdo: Publicado (Sim) e
    • Conteúdo: Tipo (= Localização)
    • Proximidade: Grande círculo (exposto)> Exponha esse filtro aos visitantes, para que eles sejam alterados> Rótulo: Proximidade> adicione "10" ao campo Valor> Desbloqueie a unidade de medida> Desbloqueie a localização
  15. Cabeçalho > Global: área de texto> Exibir mesmo que a exibição não tenha resultado

    • "Encontre um local perto de você. Você pode pesquisar usando sua cidade, província / estado ou um código postal."
  16. Comportamento sem resultados > Global: área de texto e adicione o seguinte:

    • "Desculpe, não foram encontrados resultados.
      1.) Verifique a precisão do seu código postal
      2.) Verifique a ortografia da sua cidade, província ou estado
      3.) Aumente a distância da proximidade"
  17. Enviar texto do botão : Pesquisa

  18. Adicionar nova exibição: " OpenLayers Data Overlay "

  19. Formato :

    • Configurações> Aplicar este openlayers (substituir)> Fontes de dados do mapa: WKT> Campo WKT: Geofield> Campo Descrição>> Aplicar (esta exibição)
  20. Salve a visualização

  21. Vamos para admin/structure/openlayers/maps

  22. Clonar o mapa padrão

  23. Informações gerais> Nome: mapa de localização. Título: Mapa de Localização> Descrição do Mapa: Este é o mapa de localização padrão.

  24. Camada e estilos> Sobrepor camadas (selecione a vista que acabamos de criar) Locais "Ativado" "Ativado" Faça o mesmo no espaço reservado para o Geofield Formatter

  25. Comportamentos> Pop-up (é necessário voltar e "Selecionar camada para aplicar pop-ups." Mais tarde)> Zoom para camada "Selecione a camada para aumentar o zoom quando o mapa for carregado" > Ponto Nível de zoom: 20 ****

  26. Salve o mapa

  27. Volte para a vista que acabamos de criar

    • admin/structure/views/view/proximity_search/edit
  28. Adicionar exibição "Página"

    • Caminho: /locator
    • Formato: Mapa do OpenLayers> Aplicar (esta exibição)> Mapa: Mapa de Locais (O que acabamos de criar no OpenLayers)> Aplicar
  29. Salvar a visualização (agora devemos ver nosso mapa no painel de visualização na parte inferior da visualização, com qualquer conteúdo de teste

  30. Adicionar exibição: "anexo"

    • Formato: Tabela> Aplicar (esta exibição)
    • Anexar a: Página
    • Herdar filtros expostos: Sim
    • Remova o cabeçalho> Global: área de texto> Aplicar (esta exibição)
    • Itens a serem exibidos: Exibe um número especificado de itens | 5 itens
    • Herdar pager: Sim
    • Renderizar pager: Sim
  31. Salvar visualização

  32. Comportamentos> Pop-up> Camadas> proximidade_search_openlayers_1 (o mapa de Openlayers de visualizações que acabamos de criar)

  33. Aplicar zoom à camada> Aplica zoom na extensão de uma determinada camada no carregamento do mapa. >proximity_search_openlayers_1

  34. Volte para admin/structure/types/manage/location/display> clique no ícone de roda dentada e altere a opção Abrir camadas predefinidas para o mapa de localização que acabamos de criar> Atualizar> Salvar

Voila! Feito


11
você responder é tão detalhado que eu quero colocar uma recompensa e auto recompensa-lo para você: D Vou tentar os passos agora e deixar você saber como funcionava
F1234k

Não é apenas uma resposta, é um tutorial :) #
Codium

+1, mas é importante observar que o ol_locatorrecurso pode estar com erros nas versões mais recentes dos módulos, e não há restrições de número de versão. Eu experimentei (infelizmente). Mas sua resposta é realmente bem detalhada.
precisa saber é o seguinte

Se o módulo estiver com erros, poste-o na fila de problemas do meu módulo exatamente com o que não está funcionando (detalhes completos). Não tenho problemas para corrigir os problemas, mas preciso saber sobre eles. :)

Acabei de testar o OpenLayers Locator e funciona muito bem e como anunciado. Obrigado @nicoz.
Nigel Waters

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.