質問

Googleでプログラムでマーカーを生成することは可能ですか?たとえば、PHPを使用してGoogleマップでプロットしたいサービスと場所のデータベースがあります。

マップAPI V3を使用して、マップを作成し、マーカーと情報ウィンドウを使用してサービスを微細にプロットしましたが、デフォルトマーカーで本当にやりたいのは数値(1,2,3,4など)を生成することです。 DBから取得される順序に基づいてバブル。また、データベース内のサービスタイプに基づいて、マーカーアイコンの色をプログラム的に変更したいと思います。

私はPHPを使用しているので、これを行うスクリプトがあるかどうかはわかりませんが、GoogleがAPIを通じてこのカスタムマーカー生成を提供することを望んでいました。

役に立ちましたか?

解決

JavaScriptコードをPHPに吐き出します。

これは、ウィンドウが関連付けられたマーカーを追加するために書いた少し便利なJavaScript関数です。

function add_marker(opts, place) {
  var marker = new google.maps.Marker(opts);
  marker.place_id = place.id;
  markers[place.id] = marker;
  var infowindow = new google.maps.InfoWindow({
    content: place.details
  });

  infowindows[place.id] = infowindow;

  google.maps.event.addListener(marker, 'click', function() {
    infowindows[marker.place_id].open(map,marker);
  });

 }

したがって、Javascriptyの場所でそれを宣言した後、おそらくあなたのマップが「マップ」と呼ばれるグローバルであると仮定すると、おそらくPHPがあります。

<script type="text/javascript">
  <?php 
  $count = 0;
  foreach ($rowset as $row): ?>
  add_marker({
        position: new google.maps.LatLng(<?php echo $row->lat ?>, <?php echo $row->lng ?>),
        title:<?php echo $row->title ?>,
        map:map
    }, { id:'<?php echo $count ?>', details:'<?php echo $row->details ?>' });
  <?php 
  $count++;
  endforeach; ?>
</script>

私はこれをテストしていませんし、データがどのように見えるかについても考えていませんが、その方法はあなたが望むもののために機能するはずです。カスタムマーカーの生成とはどういう意味かは100%確信していません。なぜなら、PHPだけでなく、すでにそれをやっているように聞こえるからです。

他のヒント

Maps APIでは、マーカーを表示するために(任意のdivではなく)画像を使用する必要があるため、画像サーバー側をレンダリングする必要があります。

これを行う簡単な方法は、GoogleチャートAPIを使用してマーカーアイコンをレンダリングすることです。http://code.google.com/apis/chart/docs/gallery/dynamic_icons.html#pins

出力の例:alt text

生成: https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=c|ff00001000000

他の誰かがこの問題を抱えているかどうかはわかりませんが、私のポイントをプロットするためにジオコードをループすることはできませんでした。したがって、私の方法は、ディスプレイステージの代わりにユーザー入力段階にLAT/LONG座標をジオコードして保存し、Googleにかける帯域幅の応力を解放することでした。

これが役立つかどうかはわかりませんが、おそらくこれらのマーカー画像を事前にコードして保存するのに役立つかもしれません。選択した回答に沿っているので、ページがロードされている間にこれらの画像を作成するためにGoogleに依存しているので、このコードを別の段階で実行し、同僚と一緒に出力を保存することにより、サービスをスピードアップすることをお勧めします。 PHPデータベース。

乾杯、

ダン

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top