web-dev-qa-db-ja.com

特定のmeta_keyとmeta_valueで、Googleマップに複数のマーカーを追加する方法

私は200以上のカスタムポストを持っており、それぞれのカスタムポストにカスタムフィールド(add_city、add_state、add_location)があります。 kustompostをソートするには、この美しいコードを使います。

<?php $args = array(
'meta_query'=> array(
    array(
        'key' => 'add_state',
        'value'=> 'ill'
    ),
           array(
                    'key' => 'add_city',
                    'value' => 'chicago'
     ))); $posts = query_posts($args); ?>

詳細ページでは、googlmapにこのコードを使用しています。

<?php
        $add_arr = array();
        if(get_post_meta($post->ID,'address',true))
        {
            $add_arr[] = get_post_meta($post->ID,'address',true);
        }
        if(get_post_meta($post->ID,'add_city',true))
        {
            $add_arr[] = get_post_meta($post->ID,'add_city',true);
        }
        if(get_post_meta($post->ID,'add_state',true))
        {
            $add_arr[] = get_post_meta($post->ID,'add_state',true);
        }

        $add_str = '';
        if($add_arr)
        {
            $add_str = implode(',',$add_arr);
        }
        if($add_str)
        {
            $geo_longitude = get_post_meta($post->ID,'geo_longitude',true);
            $geo_latitude = get_post_meta($post->ID,'geo_latitude',true);
        ?>
    <div class="propertymap">


             <?php if($geo_longitude &&  $geo_latitude){

                    require_once (TEMPLATEPATH . '/library/map/preview_map.php');
                    preview_address_google_map($geo_latitude,$geo_longitude,$add_str);
            }else{?>
            <iframe src="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=<?php echo $add_str;?>&ie=UTF8&z=14&iwloc=A&output=embed" height="358" width="239" scrolling="no" frameborder="0" ></iframe>
            <?php }?></div>

それから私はページを作成し、これらのコードのいずれかを文字列にしようとすることに多くの時間を費やしました。彼は白い画面しか受け取らなかった。私がこのパズルを解くのを手伝ってください!

1
Shklyar Sergio

地図上に複数のマーカーを取得する唯一の方法は、Google Maps APIを使用することです。 https://developers.google.com/maps/documentation/javascript/tutorial

あなたがiframeを通して参照している方法は1つのマーカー(1つの場所)しか許しません。

1
Nick