2011-10-29 3 views
0

なぜこのv2のような構造がv3では動作しないのですか?Googleマップv2からv3へ:roadmap getTile()なぜ機能しないのですか?

(代わりに、ロードマップタイルパス私は未定義の取得)

var mytype = new google.maps.ImageMapType({ 
    getTileUrl: function(tile, zoom) { 
    var url = ''; 
    if (cond_need_custom_tiles) { 
     url = 'http://domain.com/mytiles/tile-'+tile.x+'-'+tile.y+'-'+zoom; 
    } 
    else { // need ROADMAP tiles 
     // old (v2): 
     // url = G_NORMAL_MAP.getTileLayers()[0].getTileUrl(tile, zoom); 

     // new (v3): 
     url = map.mapTypes.get(google.maps.MapTypeId.ROADMAP).getTile(tile, zoom); // why it doesn't work?? 
    } 
    console.log(url); // undefined!!! why? 
    return url; 
    }, 
    tileSize: new google.maps.Size(256, 256), 
    minZoom: 0, 
    maxZoom: Number(opt.zoom), 
    name: 'mytiles', 
}); 

PS:私は私のタイルをしたいmapTypeはとロードマップをバックグラウンドで(なし私のタイル)、ありがとう。

答えて

1

getTile()は、ベースマップには定義されていません。カスタムのmapTypesでユーザー定義のメソッドとしてのみ使用する必要があります。いくつかの追加情報については、#2のhttp://code.google.com/p/gmaps-api-issues/issues/detail?id=3635#c2をご参照ください。

あなたの特定の使用例では、デフォルトでROADMAPタイルをロードし、cond_need_custom_tilesに応じて適切なカスタムimageMapTypeを表示することができます。

また、上記のバグは、ユースケースの詳細を示すのに適しています。

+0

>デフォルトでROADMAPタイルを読み込むだけでもかまいません。
少しのコード例がありますか? – graceman9

関連する問題