간단한 Google지도 솔루션이 필요합니다. 모듈의 미로에서 길을 잃었다


15

우선, 어떤 버전의 Drupal (6 또는 7)을 사용해야하는지 신경 쓰지 말자. 지금까지 Google지도에서 작업 할 필요가 없었던 두 버전 모두에 대한 경험이 있습니다. 요구 사항은 매우 기본적입니다 (내가 이해 한 것).

1) 맵에 추가하려는 모든 회사에 대한 노드가 있습니다.

2) 노드 편집 양식에서 주소를 추가하고 맞춤 Google지도에 추가하고 싶습니다 (또는 Google지도 위치의 링크를 복사하여 붙여 넣기)

3) 검색 기능을 통해 주어진 위치에서 가장 가까운 회사를 찾습니다

거기에는 수많은 다른 모듈이 있으며, 15 개 이상의 서로 다른 모듈 을 살펴 보는 대신 올바른 방향을 가리키고 싶을 뿐입니다.

미리 감사드립니다.

답변:


36

OpenLayers ( http://drupal.org/project/ol_locator 참조 )를 사용하여이를 구현하는 Drupal 기능을 만들었 거나 다음 연습 을 사용하여 직접 설정할 수 있습니다.

  1. 다음 모듈을 다운로드하여 활성화하십시오.

  2. 하위 모듈을 활성화합니다 :

    • 지오 필드지도 7.x-1.0-alpha5
    • UI 7.x-3.0-rc1보기
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayers 뷰 7.x-2.0-alpha2
  3. admin/structure/types/add" Location" 라는 새 콘텐츠 유형으로 이동

  4. admin/structure/types/manage/location/fields다음 필드로 이동하여 추가하십시오.

    • 레이블 : 주소> 필드 이름 : 주소> 필드 유형 : 우편 주소> 위젯 : 동적 주소 양식
  5. 사용 가능한 국가를 목록에서 선택하십시오. 모두 비워 두려면 비워 두십시오.

  6. "주소 양식 (국가 별)"확인

    • 참고 : 국가 및 관련 필드는 주소 필드 모듈에서 처리합니다. 국가가 표시되지 않거나 해당 필드가없는 경우 해당 모듈 http://drupal.org/project/addressfield에 문제를 제기해야합니다 (대기열에 문제가 있는지 확인) 게시하기 전에 먼저 누락 된 국가)
  7. 라벨 : 지오 필드> 필드 이름 : 지오 필드> 필드 유형 : 지오 필드> 위젯 : 다른 필드의 지오 코드

  8. 지오 필드 admin/structure/types/manage/ol_locator_location/displayDefault디스플레이로 이동하여 변경하십시오 .

    • 라벨 : 숨김> 형식 : OpenLayers
  9. 톱니 바퀴 아이콘을 클릭하고 다음을 선택하십시오.

    • OpenLayers 사전 설정 : 지오 필드 포맷터 맵> 데이터 옵션 : 전체 지오메트리 사용
  10. 다음으로 이동하여 admin/structure/openlayers/layers/settings설정하십시오.

    • Google Maps API 버전 : v3.2
  11. 테스트 위치를 만들어 지오 코딩이 작동하는지 테스트 해 봅시다

    • 테스트 컨텐츠 유형을 작성할 때 올바르게 설정된 주소를 사용 중인지 확인하십시오. Google이 귀하의 주소를 모르는 경우 새 사이트도 마찬가지입니다.
  12. admin/structure/views/add다음 정보를 사용하여 새보기로 이동 하십시오.

    • 보기 이름 : 근접 검색> 설명 : 사용자가 근접 검색을 수행 할 수 있도록 지오 코딩 된 위치를 동적 맵에 표시합니다. > 표시 : 유형 내용 : 정렬 기준 : 정렬되지 않음> 계속 및 편집
  13. 다음 필드를 추가하고 명시된 경우를 제외하고 기본값을 유지하십시오.

    1. 내용 : 제목 > 확인 라벨 작성 : "제목"
    2. 내용 : 주소 (주소)
    3. 콘텐츠 : 지오 필드 (Geofield)> 표시에서 제외
    4. 근접 : 거리 (거리)
  14. 기존에 다음 필터 기준 을 추가하십시오 .

    • 내용 : 게시 (예) 및
    • 내용 : 유형 (= 위치)
    • 근접성 : 원형 (노출)>이 필터를 방문자에게 노출하여 변경 가능> 레이블 : 근접성> 값 필드에 "10"추가> 측정 단위 잠금 해제> 위치 잠금 해제
  15. 머리글 > 전역 : 텍스트 영역>보기에 결과가없는 경우에도 표시

    • "가까운 위치를 찾으십시오. 도시, 주 /도 또는 우편 번호를 사용하여 검색 할 수 있습니다."
  16. 결과 동작 없음 > 글로벌 : 텍스트 영역 및 다음을 추가하십시오.

    • "죄송합니다. 결과가 없습니다.
      1.) 우편 번호의 정확성을 확인하십시오
      2.) 도시, 주 또는 도의 철자를 확인하십시오.
      3) 근접 거리를 늘리십시오"
  17. 제출 버튼 텍스트 : 검색

  18. 새 디스플레이 추가 : " OpenLayers Data Overlay "

  19. 형식 :

    • 설정>이 오픈 레이어 적용 (재정의)> 맵 데이터 소스 : WKT> WKT 필드 : 지오 필드> 설명 필드>> 적용 (이 디스플레이)
  20. 보기 저장

  21. 이동 admin/structure/openlayers/maps

  22. 기본 맵 복제

  23. 일반 정보> 이름 : location_map 제목 : 위치 맵> 맵 설명 : 기본 위치 맵입니다.

  24. 레이어 및 스타일> 레이어 오버레이 (방금 만든보기 선택) 위치 "사용 가능" "활성화 됨"지오 필드 포맷터 자리 표시 자에 대해 동일하게 수행하십시오.

  25. 동작> 팝업 (다시 와서 "팝업을 적용 할 레이어 선택" 으로 돌아 가야 합니다. )> 레이어로 확대 "맵이로드 될 때 확대 할 레이어를 선택합니다." > 포인트 줌 레벨 : 20 ****

  26. 지도 저장

  27. 방금 만든보기로 돌아 가기

    • admin/structure/views/view/proximity_search/edit
  28. 디스플레이 "페이지" 추가

    • 통로: /locator
    • 형식 : OpenLayers 맵> 적용 (이 디스플레이)> 맵 : 위치 맵 (OpenLayers에서 방금 생성 한 맵)> 적용
  29. 뷰를 저장합니다. 이제 테스트 내용과 함께 뷰 하단의 미리보기 창에 맵이 표시됩니다.

  30. 디스플레이 추가 : "첨부 파일"

    • 형식 : 테이블> 적용 (이 디스플레이)
    • 첨부 : 페이지
    • 노출 된 필터 상속 : 예
    • 머리글> 전역 : 텍스트 영역> 적용을 제거합니다 (이 디스플레이).
    • 표시 할 항목 : 지정된 수의 항목 표시 | 5 개 항목
    • 상속 호출기 : 예
    • 렌더 호출기 : 예
  31. 보기 저장

  32. 비헤이비어> 팝업> 레이어> 근접 _ 검색 _openlayers_1 (방금 만든 Openlayers 맵보기)

  33. 레이어 확대> 맵로드시 지정된 레이어의 범위까지 확대합니다. >proximity_search_openlayers_1

  34. 돌아 가기 admin/structure/types/manage/location/display> 톱니 바퀴 아이콘을 클릭하고 열린 레이어 사전 설정 을 방금 만든 위치 맵 > 업데이트> 저장으로 변경하십시오.

짜잔! 끝난


1
당신은 대답이 너무 상세해서 현상금을 넣고 당신에게 그것을 자동으로 보상하고 싶습니다 : D 나는 지금 단계를 시도하고 그것이 어떻게 작동했는지 알려줄 것입니다.
F1234k

그것은 대답이 아니라 튜토리얼입니다 :)
Codium

+1이지만 ol_locator최신 버전의 모듈에서는 기능에 버그가있을 수 있으며 버전 번호 제한이 없습니다. 나는 그것을 불행히도 경험했다. 그러나 당신의 대답은 정말 훌륭합니다.
Sk8erPeter

모듈이 버그 인 경우 제대로 작동하지 않는 모듈과 함께 모듈의 문제 대기열에 게시하십시오 (자세한 내용). 문제를 해결하는 데 문제가 없지만 이에 대해 알아야합니다. :)

방금 OpenLayers Locator를 테스트했으며 광고가 잘 작동합니다. 감사합니다 @nicoz.
Nigel Waters

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.