3

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

Maps API v3 を使用して、マップを作成し、マーカーと情報ウィンドウを使用してサービスをうまくプロットしましたが、実際にやりたいことは、デフォルト マーカーで数字 (1、2、3、4 など) を生成することです。バブルは、DB から取得した順序に基づいています。また、データベース内のサービス タイプに基づいて、マーカー アイコンの色をプログラムで変更したいと考えています。

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

4

3 に答える 3

5

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

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

出力例: 代替テキスト

生成元:https ://chart.apis.google.com/chart?chst = d_map_pin_letter&chld = C | FF0000 | 000000

于 2010-08-04T03:43:17.393 に答える
4

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

これは、ウィンドウが関連付けられたマーカーを追加するために作成した、少し便利な 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 ではなく、既にそれを行っているように聞こえるからです。

于 2010-06-21T20:35:28.217 に答える
0

他の誰かがこの問題を抱えていたかどうかはわかりませんが、ジオコードをループしてポイントをプロットすることはできませんでした。Google はこれをサービスの悪用と見なしています. そのため、私の方法は、表示段階ではなくユーザー入力段階で緯度/経度座標をジオコーディングして保存し、Google にかかる帯域幅のストレスを軽減することでした。

これが役立つかどうかはわかりませんが、その場で行うのではなく、これらのマーカー画像を事前にコーディングして保存すると役立つ場合があります。あなたが選んだ答えでは、ページの読み込み中にこれらの画像を生成するためにGoogleに頼っています。おそらく、このコードを別の段階で実行し、出力を座標とともに保存することで、サービスをスピードアップしたいと思うかもしれませんあなたのPHPデータベース。

乾杯、

ダン

于 2010-08-17T07:46:23.713 に答える