先月まで開発していたGoogle Maps APIを使った地図アプリケーションを本番機へ移行させたところ、Firefox 3で特定の地図情報(KMLファイル)のポリラインが描画されないという不具合報告を受けて、原因を特定するために急遽、調査しました。
地図情報はKML形式のファイルで、ファイルを読み込むたびにポリラインをコード化するのは面倒なので、拡張データを定義してコード化したポリラインの情報(頂点データ、ズームレベル)をKMLファイルに記述するようにしています。
これらは、唯一の子としてテキストノードを持つ要素なので、
として、拡張データを表す要素の内容テキストを取得していましたが、Firefox 3では、4kBを超えるテキストは読み取ることができないみたいです(Internet Explorerでは大丈夫なようですが…)。Firefox 3でポリラインを描画できなかった地図のコード化ポリラインの頂点データは9kB超…ダメじゃん。
Firefox 3でも
だと、きちんと内容テキストを取得することができますが、この関数はInternet Explorerにはありません。
ちょうど、Google Maps APIには、
なんていう、ブラウザを意識せずに済む、至れり尽くせりな関数があって、これを使うとスンナリ解決しました。
ところで、この現象はコンテンツ作成を生業とする、某社の情シスが契約する下請け会社の担当者からもたらされた不具合報告でした。私たちはプロトタイプを提供しただけで彼らとも情シスともと直接、保守契約しているわけではないのですが、なぜか私たちに問い合わせがありました。仕様に対する問い合わせならともかく…このくらいノウハウがあれば、速攻で対処できるだろうに…彼らは私たちをバカにしているのか、それとも、タダのスキル不足なのか…(怒)この間は、
なんて言ってくるし。仕様書には一言も「絶対URLを出力する」とは書いていないのに…あーぁ無駄に疲れる(泣)
地図情報はKML形式のファイルで、ファイルを読み込むたびにポリラインをコード化するのは面倒なので、拡張データを定義してコード化したポリラインの情報(頂点データ、ズームレベル)をKMLファイルに記述するようにしています。
これらは、唯一の子としてテキストノードを持つ要素なので、
element.firstChild.nodeValue
として、拡張データを表す要素の内容テキストを取得していましたが、Firefox 3では、4kBを超えるテキストは読み取ることができないみたいです(Internet Explorerでは大丈夫なようですが…)。Firefox 3でポリラインを描画できなかった地図のコード化ポリラインの頂点データは9kB超…ダメじゃん。
Firefox 3でも
element.textContent
だと、きちんと内容テキストを取得することができますが、この関数はInternet Explorerにはありません。
ちょうど、Google Maps APIには、
GXml.value(node)
なんていう、ブラウザを意識せずに済む、至れり尽くせりな関数があって、これを使うとスンナリ解決しました。
ところで、この現象はコンテンツ作成を生業とする、某社の情シスが契約する下請け会社の担当者からもたらされた不具合報告でした。私たちはプロトタイプを提供しただけで彼らとも情シスともと直接、保守契約しているわけではないのですが、なぜか私たちに問い合わせがありました。仕様に対する問い合わせならともかく…このくらいノウハウがあれば、速攻で対処できるだろうに…彼らは私たちをバカにしているのか、それとも、タダのスキル不足なのか…(怒)この間は、
仕様書にはURLと書いてあるのに、実際のデータは、相対パスになっています。仕様どおり作ってください
なんて言ってくるし。仕様書には一言も「絶対URLを出力する」とは書いていないのに…あーぁ無駄に疲れる(泣)