首页 > 解决方案 > 谷歌集群地图,带有 acf 的位置数组

问题描述

我正在使用此处找到的标准集群谷歌地图:https ://developers.google.com/maps/documentation/javascript/marker-clustering

从示例中我可以正常工作。我正在尝试将 acf 连接到我的 cpt 长和 lat 以在位置 const 数组中弹出。

而不是使用标准:

  const locations = [
        { lat: -33.718234, lng: 150.363181 },
        { lat: -33.727111, lng: 150.371124 },
        { lat: -33.848588, lng: 151.209834 },
        { lat: -33.851702, lng: 151.216968 },
        { lat: -34.671264, lng: 150.863657 },
        { lat: -35.304724, lng: 148.662905 },
        { lat: -36.817685, lng: 175.699196 },
        { lat: -36.828611, lng: 175.790222 },
        { lat: -37.75, lng: 145.116667 },
        { lat: -37.759859, lng: 145.128708 },
        { lat: -37.765015, lng: 145.133858 },
        { lat: -37.770104, lng: 145.143299 },
        { lat: -37.7737, lng: 145.145187 },
        { lat: -37.774785, lng: 145.137978 },
        { lat: -37.819616, lng: 144.968119 },
        { lat: -38.330766, lng: 144.695692 },
        { lat: -39.927193, lng: 175.053218 },
        { lat: -41.330162, lng: 174.865694 },
        { lat: -42.734358, lng: 147.439506 },
        { lat: -42.734358, lng: 147.501315 },
        { lat: -42.735258, lng: 147.438 },
        { lat: -43.999792, lng: 170.463352 },
      ];

我有这个设置:

const locations = [
          <?php
              $args = array(
                  'post_type' => 'stockists',
                  'posts_per_page' => -1
              );
              $places = new WP_Query($args);
              if($places->have_posts()){
                  while($places->have_posts()) {
                     the_post();?>

                     {lat:<?php echo get_field('lat') ?>, lng:<?php echo get_field('long') ?>},

          <?php }} ?>
      ];

但是我收到这些错误:

注意:未定义的偏移量:15 in /home/sites/7b/d/de4743ded0/public_html/typhoon/wp-includes/class-wp-query.php在第3284
行 ['',

我试过有条件的 acf 只显示填充的帖子,但仍然没有运气。目前只有一篇文章很长而且很长。

我需要在 acf 中有 long 和 lats,因为用户需要通过 CSV 导入,所以我不能手动添加它们。

真的卡住了,任何帮助将不胜感激!

标签: mapscluster-computing

解决方案


我的帖子查询略有偏差,我在我的 acf 周围加上了一个条件。

const locations = [
              <?php
                  $args = array(
                      'post_type' => 'stockists',
                      'posts_per_page' => -1
                  );
                  $places = new WP_Query($args);
                  if($places->have_posts()){
                      while($places->have_posts()) {
                         $places->the_post(); ?>
                         <?php if (get_field('lat')) : ?>
                          {lat:<?php echo get_field('lat') ?>, lng:<?php echo get_field('long') ?>},
                         <?php endif; ?>
                  <?php } ?>
                  <?php wp_reset_postdata(); ?>
              <?php } ?>
          ];

推荐阅读