お天気Webサービスを使用する際に必要な「地域別に定義されたID番号」については、ハードコーディングするのでなく、RSS(全国の地点定義表)から取得するのがよいでしょう。
例えば、Action Script 3(AS3)では、以下のように記述します。
private function hoge():void
{
var url:String = "http://weather.livedoor.com/forecast/rss/forecastmap.xml";
var urlRequest:URLRequest = new URLRequest(url);
var urlLoader:URLLoader = new URLLoader(urlRequest);
urlLoader.addEventListener(Event.COMPLETE, onUrlLoaderComplete);
urlLoader.load(urlRequest);
}
private function onUrlLoaderComplete(event:Event):void
{
var urlLoader:URLLoader = event.currentTarget as URLLoader;
var xml:XML = new XML(urlLoader.data);
// コメントは、出力結果(参考)です
var ldWeatherNS:Namespace = xml.namespace("ldWeather");
for each (var xmlChannel:XML in xml.channel)
{
for each (var xmlSource:XML in xmlChannel.ldWeatherNS::source)
{
for each (var xmlArea:XML in xmlSource.area)
{
for each (var xmlPref:XML in xmlArea.pref)
{
for each (var xmlCity:XML in xmlPref.city)
{
trace(parseInt(xmlCity.@id) + ":" +
xmlArea.@title + "-" +
xmlPref.@title + "-" +
xmlCity.@title);
// 1:北海道地方-道北-稚内
// 2:北海道地方-道北-旭川
// 3:北海道地方-道北-留萌
// ...
// 141:南西諸島地方-沖縄県-石垣島
// 142:南西諸島地方-沖縄県-与那国島
}
}
}
}
}
}
結果のXMLデータには、IDとともに、area(北海道地方など)、pref(道北)、city(稚内)などの情報も格納されています。
