Google Maps API 3 - デフォルト(ドット)マーカーのカスタムマーカーカラー 質問する

Google Maps API 3 - デフォルト(ドット)マーカーのカスタムマーカーカラー 質問する

これに似たような質問は他にもたくさん見かけました(ここここそしてここ)、しかし、それらはすべて私の問題を解決しない答えを受け入れました。私が見つけたこの問題に対する最善の解決策はスタイルマーカーライブラリでは、マーカーのカスタム色を定義できますが、デフォルトのマーカー (Google マップ検索を実行したときに表示される、中央にドットがあるマーカー) を使用することはできません。文字が入ったマーカーや特別なアイコンが付いたマーカーのみが提供されるようです。

ベストアンサー1

アイコン画像を動的にリクエストすることができます。Google チャート APIURLは次のとおりです:

http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FE7569

これは次のようになります:デフォルトの色画像は21x34ピクセルで、ピンの先端の位置は(10, 34)です。

また、別の影の画像も必要になります (近くのアイコンと重ならないようにするため)。

http://chart.apis.google.com/chart?chst=d_map_pin_shadow

これは次のようになります:ここに画像の説明を入力してください画像は40x37ピクセルで、ピンの先端の位置は(12, 35)です。

あなたが構築するときマーカー画像それに応じてサイズとアンカー ポイントを設定する必要があります。

    var pinColor = "FE7569";
    var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|" + pinColor,
        new google.maps.Size(21, 34),
        new google.maps.Point(0,0),
        new google.maps.Point(10, 34));
    var pinShadow = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_shadow",
        new google.maps.Size(40, 37),
        new google.maps.Point(0, 0),
        new google.maps.Point(12, 35));

次に、次の操作でマップにマーカーを追加できます。

        var marker = new google.maps.Marker({
                position: new google.maps.LatLng(0,0), 
                map: map,
                icon: pinImage,
                shadow: pinShadow
            });

「FE7569」を目的のカラーコードに置き換えるだけです。例:デフォルトの色緑黄色

クレジットの理由ジャック・B・ニンブルインスピレーションのために ;)

おすすめ記事