フォーラム

lightweight-google-mapsについて (6 件の投稿)

  1. yosshies
    メンバー
    1 年前の投稿 #

    新しいバージョンのlightweight-google-mapsを導入したのですが、固定ページの地図の左側の下に「AND,」の文字が……。
    いろいろ調べるとLat_Long.phpの以下の部分で、どこか「AND SUBSTRING_INDEX(meta_value, ',',-1)」が余分かなという気もするのですが、どうなんでしょうか。どなたかわかりませんでしょうか。
    $locations = $wpdb->get_results("SELECT post_id,meta_value FROM {$wpdb->postmeta} WHERE meta_key = '" . GEO_META_FIELD_NAME . "' AND SUBSTRING_INDEX(meta_value, ',',1) >= $south_lat AND SUBSTRING_INDEX(meta_value, ',',1) <= $north_lat AND SUBSTRING_INDEX(meta_value, ',',-1) >= $west_lon AND SUBSTRING_INDEX(meta_value, ',',-1) <= $east_lon ORDER BY post_id DESC");

  2. lilyfan
    メンバー
    1 年前の投稿 #

    プラグイン作者です。
    おそらく、$bounds[0]〜[3] のいずれかに値が入ってなくて空なのだと思います。その場合は、SQL 文が不正になる可能性がありますね。

    Lat_Long.php の47空50行目を以下のようにしてみてください。これでも問題が出るようなら、もうちょっと大胆に処理を変更してみます。

    $south_lat = floatval(min($bounds[0], $bounds[2]));
    $north_lat = floatval(max($bounds[0], $bounds[2]));
    $west_lon  = floatval(min($bounds[1], $bounds[3]));
    $east_lon  = floatval(max($bounds[1], $bounds[3]));
  3. yosshies
    メンバー
    1 年前の投稿 #

    さっそく、ご丁寧な回答ありがとうございます。
    上記のようにしたところ、「AND,」の表示は消えたもののエントリーページに地図が表示できず(設定画面で「地図」を選択してもです)、固定ページでもエントリーページへのリンクのマーカーが表示されませんでした。
    けっきょく、現在、前バージョンのプラグインを導入して満足して使っています。

  4. lilyfan
    メンバー
    1 年前の投稿 #

    上記のようにしたところ、「AND,」の表示は消えたもののエントリーページに地図が表示できず(設定画面で「地図」を選択してもです)、固定ページでもエントリーページへのリンクのマーカーが表示されませんでした。

    ううーん。なんか変ですね。そもそも $bounds に空要素がある時点で不可思議です。ちょっと調べてみます。

    けっきょく、現在、前バージョンのプラグインを導入して満足して使っています。

    具体的に、どのバージョンをご利用でしょうか? この SQL 文を使ってないバージョンとすると、かなり古いバージョンになるはずですが……。

  5. yosshies
    メンバー
    1 年前の投稿 #

    バージョンは1.10です。
    でも、原因は何なんでしょうね。

  6. lilyfan
    メンバー
    1 年前の投稿 #

    実は、1.10 と 1.21 との Lat_Long.php は全く同じです。Lat_Long.php を呼び出している locations.php や lw_googlemaps.php の内容は多少違うので、呼び出し側に問題がある可能性が残ります。

    なお、posts_in_bounds() の呼び出し側では、きちんと floatval() をかけているので、posts_in_bounds() で floatval() をかけるのは、実は変化がないはずなのです。

    他に考えられるのは、位置情報が不正になっている地点が存在する場合でしょうか。ある程度、不正な緯度・経度は除外するように考慮していますが、posts_in_bounds() ではチェックが甘くなっています。

    後日、このへんのチェックを強化したテストコードを作ってみますので、お手数ですが、ご協力をお願いいたします。

返信

ログイン しなければ投稿できません。

About this Topic