マーカーの書式なんて

うーむ、全然リファレンスを読んでないってことに愕然とした。

何も考えずに、書いてあるとおりに記述してたので、マーカーがひとつのときは問題がなかった。
複数のマーカーを置いてみようと思い、マーカー用のQUERY_STRINGを作る簡単な関数を作ってみた。
引数に緯度経度、サイズ、色、ラベルを設定して実行すると、markers=ホニャララってのを生成するってのを。
で、絶対に必要なパラメタである座標からチェックしてQUERY_STRINGを作ったら、マーカーがうまく表示されない。

まさか、と思い、パラメタの順番をあれこれいじったら表示された。


なんでやねん(似非関西弁)

The markers parameter takes set of value assignments (marker descriptors) of the following format:

markers=markerStyles|markerLocation1|markerLocation2|... etc.

The set of markerStyles is declared at the beginning of the markers declaration and consists of zero or more style descriptors separated by the pipe character (|), followed by a set of one or more locations also separated by the pipe character (|). (The pipe character is also %7C in ASCII if you are encoding your URLs.)

Google Static Maps API - Google Code

パラメタの書式は、スタイル|位置1|位置2|...と書けって書いてある。
説明文にも、markerStylesは最初に書けって書いてあるわ。


とにかく座標は最後にってこと。


自戒の念を込めて、記事にしておく。


あと、URLエンコードされてる必要があるのを注意。
配列を使って、簡単にQUERY_STRINGを作るならhttp_build_query()でいいけど、もう少し地道に…というか、自分でやるならurlencode()を使う必要がある。まぁ、別に「:」と「|」だけだから、直接「%3A」と「%7C」と書いておいてもいいような気もするけど、汎用性とかを考えるとそのままのがいいか。




うーん…