/** * GPS-CS1KのログをGPX形式に変換します。 * @param string 入力(NMEA-0183形式) * @return 出力(GPX形式) */ public function toGPX(string:String):String { var ret:String = "\n"; ret += "\n"; ret += "\n"; ret += "\n"; var lines:Array = string.split("\r"); for (var i:String in lines) { var line:String = lines[i]; if (line != "") { var items:Array = line.split(","); if (items[0] == "$GPGGA") { var rawTime:Number = items[1]; var rawLatitude:Number = items[2]; var rawLongitude:Number = items[4]; var rawHeight:Number = items[9]; var hour:int = int(rawTime / 10000); var minute:int = int(rawTime % 10000 / 100); var second:Number = rawTime % 100; var longitude:Number = int(rawLongitude / 100) + (rawLongitude % 100) / 60; var latitude:Number = int(rawLatitude / 100) + (rawLatitude % 100) / 60; var height:Number = rawHeight > 0 ? rawHeight : 0; ret += "\n"; ret += "" + height + "\n"; ret += "\n"; ret += "\n"; } } } ret += "\n"; ret += "\n"; ret += ""; return ret; } /** * GPS-CS1KのログをKML形式に変換します。 * @param string 入力(NMEA-0183形式) * @return 出力(KML形式) */ public function toKML(string:String):String { var ret:String = "\n"; ret += "\n"; ret += "\n"; ret += "\n"; ret += "\n"; ret += "\n"; var lines:Array = string.split("\r"); for (var i:String in lines) { var line:String = lines[i]; if (line != "") { var items:Array = line.split(","); if (items[0] == "$GPGGA") { var latitude:Number = items[2]; var longitude:Number = items[4]; var rawHeight:Number = items[9]; var height:Number = rawHeight > 0 ? rawHeight : 0; ret += (int(longitude / 100) + (longitude % 100) / 60) + "," + (int(latitude / 100) + (latitude % 100) / 60) + "," + height + "\n"; } } } ret += "\n"; ret += "\n"; ret += "\n"; ret += ""; return ret; }