Butuh solusi Google Maps sederhana; hilang di labirin modul


15

Pertama-tama, izinkan saya menyatakan bahwa saya tidak peduli versi Drupal mana yang harus saya gunakan (6 atau 7). Saya memiliki pengalaman dengan kedua versi yang saya tidak perlu bekerja dengan Google Maps sampai sekarang. Persyaratannya cukup mendasar (dari apa yang saya mengerti):

1) Memiliki simpul untuk setiap perusahaan yang ingin saya tambahkan di peta

2) Dalam bentuk edit simpul saya ingin menambahkan alamat dan menambahkannya di google map khusus (atau mungkin salin-tempel tautan dari lokasi google map)

3) Memiliki fungsi pencarian untuk menemukan perusahaan terdekat untuk lokasi tertentu

Ada banyak sekali modul yang berbeda di luar sana, dan saya ingin diarahkan ke arah yang benar daripada melihat melalui 15+ modul yang berbeda hanya untuk akhirnya menyadari bahwa saya perlu menulis modul khusus untuk diri saya sendiri.

Terima kasih sebelumnya.

Jawaban:


36

Saya telah membuat fitur Drupal yang mengimplementasikan ini menggunakan OpenLayers (Lihat http://drupal.org/project/ol_locator ) atau Anda dapat menggunakan walk-through berikut untuk mengatur sendiri.

  1. Unduh dan aktifkan Modul berikut:

  2. Aktifkan sub-modul:

    • Geofield Map 7.x-1.0-alpha5
    • Tampilan UI 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • Tampilan OpenLayers 7.x-2.0-alpha2
  3. Buka admin/structure/types/adddan buat jenis konten baru yang disebut " Location"

  4. Pergi ke admin/structure/types/manage/location/fieldsdan tambahkan bidang berikut:

    • Label: Alamat> Nama bidang: alamat> Jenis bidang: Alamat pos> Widget: Bentuk alamat dinamis
  5. Pilih negara yang tersedia yang Anda inginkan dari daftar. Biarkan kosong untuk mengizinkan semuanya.

  6. Centang "Formulir alamat (khusus negara)"

    • Catatan: Negara-negara dan bidang terkait mereka ditangani oleh modul Addressfield. Jika Anda tidak melihat negara Anda atau jika tidak memiliki bidang yang sesuai, Anda perlu mengajukan masalah dengan modul tersebut http://drupal.org/project/addressfield (Periksa untuk melihat apakah ada masalah dalam antrian tentang Anda negara yang hilang terlebih dahulu sebelum memposting)
  7. Label: Geofield> Nama bidang: geofield> Jenis bidang: Geofield> Widget: Geocode dari bidang lain

  8. Pergi ke admin/structure/types/manage/ol_locator_location/displaydan ubah Defaulttampilan untuk Geofield:

    • Label: Tersembunyi> Format: OpenLayers
  9. Klik ikon roda gigi dan pilih yang berikut ini:

    • OpenLayers Preset: Geofield Formater Map> Pilihan data: Gunakan geometri penuh
  10. Pergi ke admin/structure/openlayers/layers/settingsdan atur yang berikut ini:

    • Google Maps API versi: v3.2
  11. Mari kita uji untuk melihat apakah Geocoding berfungsi dengan membuat Lokasi Uji

    • Saat membuat jenis konten pengujian, pastikan Anda menggunakan alamat yang sudah mapan. Jika Google tidak tahu tentang alamat Anda, maka situs baru Anda juga tidak.
  12. Pergi ke admin/structure/views/adddan buat tampilan baru dengan informasi berikut

    • Lihat nama: Pencarian Kedekatan> Deskripsi: Menampilkan lokasi yang di-geocode pada peta dinamis agar pengguna dapat melakukan pencarian kedekatan. > Tampilkan: Konten jenis: Lokasi diurutkan berdasarkan: Tidak disortir> Lanjutkan & edit
  13. Tambahkan bidang-bidang berikut dan pertahankan nilai-nilai standarnya, kecuali jika disebutkan:

    1. Konten: Judul > Centang Buat label: "Judul"
    2. Konten: Alamat (Alamat)
    3. Konten: Geofield (Geofield)> Kecualikan dari tampilan
    4. Kedekatan: Jarak (Distance)
  14. Tambahkan Kriteria Filter berikut ke yang ada:

    • Konten: Diterbitkan (Ya) dan
    • Konten: Jenis (= Lokasi)
    • Kedekatan: Lingkaran besar (terbuka)> Paparkan filter ini kepada pengunjung, untuk memungkinkan mereka mengubahnya> Label: Kedekatan> tambahkan "10" ke bidang Nilai> Buka kunci pengukuran> Buka kunci lokasi
  15. Header > Global: Area teks> Tampilan meskipun tampilan tidak memiliki hasil

    • "Temukan lokasi di dekat Anda. Anda dapat mencari menggunakan kota, provinsi / negara bagian Anda atau kode pos / pos."
  16. Tidak ada perilaku hasil > Global: Area teks dan tambahkan berikut ini:

    • "Maaf, tidak ada hasil yang ditemukan.
      1.) Verifikasi keakuratan kode pos / pos Anda
      2.) Periksa ejaan kota, provinsi, atau negara Anda
      3.) Tingkatkan jarak kedekatan"
  17. Teks tombol kirim : Pencarian

  18. Tambahkan tampilan baru: " Hamparan Data OpenLayers "

  19. Format :

    • Pengaturan> Terapkan openlayers ini (timpa)> Peta Sumber Data: WKT> Bidang WKT: Geofield> Bidang Deskripsi>> Terapkan (tampilan ini)
  20. Simpan tampilan

  21. Pergi ke admin/structure/openlayers/maps

  22. Klon peta default

  23. Informasi umum> Nama: location_map. Judul: Peta Lokasi> Deskripsi Peta: Ini adalah peta lokasi default.

  24. Lapisan & gaya> Lapisan hamparan (pilih tampilan yang baru saja kita buat) Lokasi "Diaktifkan" "Diaktifkan" Lakukan hal yang sama untuk Placeholder untuk Geofield Formatter

  25. Perilaku> Munculan (harus kembali dan "Pilih lapisan untuk menerapkan munculan." Nanti)> Zoom ke Layer "Pilih layer untuk diperbesar ketika peta dimuat" > Tingkat Tingkat Tingkatan: 20 ****

  26. Simpan peta

  27. Kembali ke tampilan yang baru saja kita buat

    • admin/structure/views/view/proximity_search/edit
  28. Tambahkan tampilan "Halaman"

    • Path: /locator
    • Format: Peta OpenLayers> Terapkan (tampilan ini)> Peta: Peta Lokasi (Yang baru saja kita buat di OpenLayers)> Terapkan
  29. Simpan tampilan (Sekarang kita akan melihat peta kita di panel pratinjau di bagian bawah tampilan kita, dengan konten pengujian apa pun

  30. Tambah tampilan: "lampiran"

    • Format: Tabel> Terapkan (tampilan ini)
    • Lampirkan ke: Halaman
    • Filter terbuka yang diwariskan: Ya
    • Hapus Header> Global: Area teks> Terapkan (tampilan ini)
    • Item untuk ditampilkan: Menampilkan jumlah item tertentu | 5 item
    • Pager bawaan: Ya
    • Render pager: Ya
  31. Simpan Tampilan

  32. Perilaku> Pop Up> Layers> proximity_search_openlayers_1 (Tampilan peta Openlayers baru saja kita buat)

  33. Zoom to Layer> Zooms sejauh lapisan yang diberikan pada pemuatan peta. >proximity_search_openlayers_1

  34. Kembali ke admin/structure/types/manage/location/display> klik ikon gir dan ubah Preset Layers Terbuka ke Peta Lokasi yang baru saja kita buat> Perbarui> Simpan

Voila! Selesai


1
jawaban Anda sangat terperinci sehingga saya ingin memberikan hadiah dan hadiah otomatis kepada Anda: D Saya akan mencoba langkah-langkahnya sekarang dan memberi tahu Anda cara kerjanya
F1234k

Ini bukan hanya jawaban, ini adalah tutorial :)
Codium

+1, tetapi penting untuk dicatat bahwa ol_locatorfitur dapat bermasalah dengan versi modul yang lebih baru, dan tidak ada batasan nomor versi di dalamnya. Saya mengalaminya (sayangnya). Tapi jawaban Anda sangat detail.
Sk8erPeter

Jika modul buggy, silakan posting di antrian masalah modul saya dengan apa yang tidak berfungsi (detail lengkap). Saya tidak punya masalah memperbaiki masalah tetapi saya perlu tahu tentang mereka. :)

Saya baru saja menguji OpenLayers Locator dan berfungsi dengan baik dan seperti yang diiklankan. Terima kasih @nicoz.
Nigel Waters

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.