サポート » 使い方全般 » GoogleAPIで取得した緯度経度の値をデータベースに入れたい

  • 解決済 igawan

    (@igawan)


    GoogleAPIで緯度経度の値を取っているのですが、取得できる回数に制限があるようです。
    そこで、取得した値を記事ごとに紐付けてデータベースに入れることができないかと思い、調べてみたのですがやり方が分かりませんでした。

    やり方や参考サイトなど、お分かりになる方いらっしゃいましたらご教示ただければ幸いです。
    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    あるサイトでは、カスタムフィールドに入力された住所を元に、記事の保存時の wp_insert_post アクションで、Geolocation APIにリクエストを行い、結果をカスタムフィールドに保存するようにしています。

    トピック投稿者 igawan

    (@igawan)

    ありがとうございます!
    wp_insert_postを使ってIDと紐付けるのかな?
    初心者には難しそうですがやってみます。

    トピック投稿者 igawan

    (@igawan)

    解決済みにしてましたが備忘録として。
    下記のサイトのコードコピペでできました。
    元サイト: http://g.azucar.jp/archives/1354

    add_action('save_post','set_cf_latlng');
    function geocode($address){
    $req ='http://maps.google.com/maps/api/geocode/xml';
    $req .='?address='.urlencode($address);
    $req .='&sensor=false';
    $xml = simplexml_load_file($req) or die('XML parsing error');
    
    if ($xml->status =='OK') {
      $loc[0] =  (string)$xml->result->geometry->location->lat;
      $loc[1] =  (string)$xml->result->geometry->location->lng;
    }
    return $loc;
    }
    function set_cf_latlng($postID){
        if($parent_id = wp_is_post_revision($postID))
        {
            $postID = $parent_id;
        }
        $address = get_post_meta($postID , 'address',true);
        if( $address ){
            $location = geocode($address);
            if ( !add_post_meta($postID, '_lat', $location[0], true) ) update_post_meta($postID,'_lat', $location[0] );
            if ( !add_post_meta($postID, '_lnt', $location[1], true) ) update_post_meta($postID,'_lnt', $location[1] );
        }else{
            delete_post_meta($postID ,'_lat');
            delete_post_meta($postID ,'_lnt');
        }
    }
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「GoogleAPIで取得した緯度経度の値をデータベースに入れたい」には新たに返信することはできません。