谷歌地图变量未定义

时间:2018-07-06 12:33:19

标签: javascript php wordpress google-maps-api-3

我正在尝试创建一个具有多个标记的地图,这些标记是通过带有元框的自定义帖子生成的。作为最终结果,我希望使用带有标题标题,一些描述和指向帖子的标记的地图。

我认为我已经走了一半,但是遇到了类似

的错误
  

未捕获的ReferenceError:未定义investmentsData

我不知道我做错了什么?请你帮助我好吗?

我的代码:

$args = array('post_type'=> 'investments'); $the_query = new WP_Query( $args );
        if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();

        $investmentsData[$row]['meta'] = get_post_meta( $post->ID, 'investments_location_details', true );
        $investmentsData[$row]['investment'] = [
          'id' => get_the_id(),
          'title' => get_the_title(),
        ];

          foreach ($investmentsData as $key => $value) {
            $investment = $value['tabs'];
            $meta = $value['meta'];
          }

            wp_localize_script('jquery-core', 'investmentsData', $investmentsData);
          ?>
          <div id="map"></div>

          <script type="text/javascript">
             var map = new google.maps.Map(document.getElementById('map'), {
                 zoom: 5,
                 center: new google.maps.LatLng(52.351168, 18.5801487),
                 mapTypeId: google.maps.MapTypeId.ROADMAP
             });
             var infowindow = new google.maps.InfoWindow();
             var marker, i;
             var j = investmentsData.length;
             function initMap() {
                 for (i = 0; i < j; i++) {
                     marker = new google.maps.Marker({
                         position: new google.maps.LatLng(investmentsData[i].lat, investmentsData[i].lng),
                         map: map
                     });

                     google.maps.event.addListener(marker, 'click', (function(marker, i) {
                         return function() {
                             infowindow.setContent(investmentsData[i].title);
                             infowindow.open(map, marker);
                         }
                     })(marker, i));
                 }
             };
         </script>

      <?php
        endwhile;
        endif;
        wp_reset_postdata();
        wp_reset_query();
      ?>

1 个答案:

答案 0 :(得分:0)

尝试添加以下代码并在var j中进行更改。

var locations = <?php echo json_encode($investmentsData) ?>
var j = locations.length;