1

フュージョン テーブルのフィールドに基づいて、フュージョン テーブル マーカーのスタイルを設定したいと考えています。デフォルトの Google マーカーを使用すると、次のコードが機能します。

        layer = new google.maps.FusionTablesLayer({
      query: {
        select: 'bizCity',
        from: '1yfyijoeC3GwDnnLutBI8IFOH8y2mfZ8LJGUDly4'
      },
    styles: [
  {where: "'bizCatSub' = 'Antique & Classic Motorcycle Dealers'", markerOptions:{ iconName:"star"}}, // other landmarks
  {where: "'bizCatSub' = 'Other moto business'", markerOptions:{ iconName:"wht_pushpin"}}, //businesses
  {where: "'bizCatSub' = 'Shop'", markerOptions:{iconName:"red_blank"}}, //town houses
  {where: "'bizCatSub' = '12'", markerOptions:{ iconName:"orange_blank"}}, //country homes
  {where: "'bizCatSub' = '15'", markerOptions:{ iconName:"target"}},
  ]  
    });
    layer.setMap(map);

ここでjsfiddleを見ることができます。

ただし、独自のカスタム マーカーを使用したいと考えています。この目的のために、私は次のようなことを試しました:

        layer = new google.maps.FusionTablesLayer({
      query: {
        select: 'bizCity',
        from: '1yfyijoeC3GwDnnLutBI8IFOH8y2mfZ8LJGUDly4'
      },
    styles: [
  {where: "'bizCatSub' = 'Antique & Classic Motorcycle Dealers'", markerOptions:{ url: "http://pollster.net/test/icons/dealer.png" }}, 
  {where: "'bizCatSub' = 'Other moto business'", markerOptions:{ url: "http://pollster.net/test/icons/othermoto.png" }}, 
  {where: "'bizCatSub' = 'Shop'", markerOptions:{ url: "http://pollster.net/test/icons/shop.png" }}
  ]  
    });
    layer.setMap(map);

上記のコードでは、データがマップに表示されますが、要求どおりにスタイル設定する代わりに、デフォルトのマーカーが使用されます。 ここでJsfiddle。スタイルとマーカーオプションとアイコンのドキュメントを見て、さまざまなバリエーションを試しましたが、何もうまくいきません。シンプルなものが欠けていると思いますが、何がわかりません。

私が欠けているものを知っている人はいますか?

4

2 に答える 2

10

Fusion Table Layer では、実際にはカスタム マーカー アイコンを使用できません。これは既知の問題です: http://code.google.com/p/fusion-tables/issues/detail?id=69

ただし、いくつかの回避策があります。おそらく最も簡単なのは、ほんの数か月前に Google の従業員がそのスレッドの下部近くに投稿したものです: http://code.google.com/p/fusion-tables/issues/detail? id=69#c107

回避策の要点は、FusionTableLayer を使用しなくなり、代わりに JavaScript を使用してフュージョン テーブル データを取得し、カスタム マーカーを自分で追加することです。これはもう少しコードですが、かなりうまく機能しているようです: https://googledrive.com/host/0B9htKoV1ZaKUU1g3ZnJCUWQyd28/customicons_viaApi.html

于 2013-01-28T21:05:16.460 に答える
3

FusionTablesLayers で独自のカスタム アイコンを使用することはできません。名前で定義されたもののみを使用できます (こちらを参照)。

独自のアイコンを使用する必要があり、FusionTablesLayer タイル ベースのレンダリングを使用しないことでパフォーマンスが低下する可能性がある場合は、GViz または Fusion Tables Query API を使用してテーブルをクエリし、Google Maps API v3 カスタム アイコンを使用できます。

「実行不可能」とマークされているが、回避策が含まれているこの問題を参照してください。

于 2013-01-28T21:12:24.837 に答える