﻿  //経度緯度から住所を取得しそれに関連するものを表示します。
  //施設のURLへ直接リンクするようにしています。
 
	
		
	
//経度緯度から住所を検索開始------------
//http://www.knya.net/archives/2005/07/rest.html

function addressSearch (){
			//全ての表示データを削除します。
			$('post_r').innerHTML    = "" ;
			$('address_r').innerHTML = "" ;
			
	
	
	    //世界測地系の緯度経度で以下を扱います。
	     var wy = myLatlng[0];
	     var wx = myLatlng[1];
         
		if(!wx||!wy){
		alert("地図で目的地を探してクリックしてください");}
	    else{
	
		//緯度経度から住所をjsonにて結果を受け取ります。
		//Toy Service　http://www.finds.jp/wsdocs/rgeocode/index.htmlのＡＰＩを利用しています
		$('address_r').innerHTML = '<p style="padding:2px"><img src="scr_hol/ajax-loader.gif" \/><br />検索中...<\/p>';
		
     
		// API リクエストURL 生成
		var url = 'http://www.finds.jp/ws/rgeocode.php'
			+ '?jsonp=ad_callback'
			+ '&lat=' + wy + '&lon=' + wx
	
		// リクエスト実施
		var script     = document.createElement( 'script' );
		script.type    = 'text/javascript';
		script.charset = 'utf-8';
		script.src     = url;
		document.getElementsByTagName("head")[0].appendChild( script );
		// 成功すると下の ad_callback() が実行される
		}
	
		//----cgiに必要データを送信終了
}




		//----cgiから受信したデータを加工します
	function ad_callback(json){
	if(!(json.status)){
		$('address_r').innerHTML = '<font color="red">指定の緯度経度から住所を取得する事ができませんでした。<br>別の場所をしてください</font>';
		breake;
		}
	else{
		ad_ken  = "";           //地点の都道府県を取得
		ad_shi  = "";           //地点の市を取得
		ad_cho  = "";           //地点の町を取得
		ad_banchi  = "";        //地点の番地を取得
		
		//取得したデータをjavascriptで加工します
		//※あえて住所等はどこからでも取得できるようにグローバルの変数に設定しています。(ad_ken,ad_shi,ad_cho)
		//これら以外はvarをつけています。
		//各項目のデータを取り出します
		ad_ken = json.result.prefecture.pname ;
		ad_shi = json.result.municipality.mname ;
		
		//もし町名以下がデータに無い場合はpref + cityのみを表示します
		//try～catch(e)で処理します
		
		//ここから先（町名以下がデータなしの場合あり）が取得できる場合、
		//try {
		//ad_cho = json.result.local.section ;
		//ad_banchi = json.result.local.homenumber ;
		//}catch(e){
		//}
		
		 var ad_all = ad_ken + ad_shi + ad_cho + ad_banchi ;
		 //住所を表示します。	 
		 $('address_r').innerHTML = ad_all ;
	//経度緯度から住所を検索終了------------
			
					
			
	//郵便番号検索開始-------	function postSearch ()へ	
			postSearch ();
		}		

	}





//郵便番号検索開始-------
//http://groovetechnology.co.jp/webservice/zipsearch/

function postSearch (){


		//1.受信した住所のデータから市または郡のキーワードを取得します。	
			 var num = ad_shi.indexOf("郡",2);
		     var editword = "";
		    if(num != -1)
			{
				for( i=0 ; i <= num ; i++)
				{
				editword += ad_shi.charAt(i);
				}
			}
			
			else
			{
			//市が含まれている場合の検索
		     num = ad_shi.indexOf("市",2);
		   	if(num != -1)
			{
				for( i=0 ; i <= num ; i++)
				{
				editword += ad_shi.charAt(i);
				}
			}
			}
			
		//郡でも市でもない場合はそのものを検索します
			 if(editword==""){
			editword = ad_shi;
			}
			
		 //2.受信した住所のデータから郵便番号を検索しpost_callbackで取得します。
			
			if(editword == ""){
				$('post_r').innerHTML ="検索するキーワードが取得できませんでした。";
				}
			else{
			var keyword = encodeURIComponent(editword) ;
			
			//このとき、市または郡（都道府県も含む）のキーワードを利用してWikipediaで検索できるよう
			//指定の場所に表示します。
				//Wikipedia htmlリンク作成開始
				var keyword_ken = encodeURIComponent(ad_ken) ;
				var wiki = 'http://wikipedia.simpleapi.net/api?keyword=' + keyword + '&output=html';
				var wiki_ken = 'http://wikipedia.simpleapi.net/api?keyword=' + keyword_ken + '&output=html';
				
			//Wikipediaで検索した結果を表示する
				$('search_w').innerHTML = '<div><a href="' + wiki_ken + '" target="_blank">' + ad_ken + '</a>　　<a href="' + wiki + '" target="_blank">' + editword + '</a></div>';
				//Wikipedia htmlリンク作成終了
			
			//住所を表示する場所に検索中を表示します
			$('post_r').innerHTML = '<p style="padding:4px"><img src="scr_hol/ajax-loader.gif" \/><br />検索中...<\/p>'
			var url = 'http://groovetechnology.co.jp/ZipSearchService/v1/zipsearch' 
			+ '?word=' + keyword
			+ '&callback=post_callback'
				
			// リクエスト実施
			var script     = document.createElement( 'script' );
			script.type    = 'text/javascript';
			script.charset = 'utf-8';
			script.src     = url;
			document.getElementsByTagName("head")[0].appendChild( script );
			// 成功すると下の post_callback() が実行される
			}
}
			

			
		
		//3.郵便番号検索結果を受信し、さらにそのデータの中から町に一致するものを選択します
function post_callback (json){
			var post_num = "" ;
			
			//データが空の場合は検索できなかった旨表示し、終了する
			if(!json.zipcode.a1){
				$('post_r').innerHTML = '郵便番号を取得することができませんでした(2)'
				}
				
				
			//データが存在する場合は町と一致するものを探し出しその郵便番号を採用します。
			else{
			var baddress ="";
			for (i in json.zipcode)
			{	
				//正規表現にてマッチする町があるかどうかを調べます
				var reg = new RegExp((json.zipcode[i]).town);
				//存在すればその郵便番号を取得します
				
				if(ad_cho.match((json.zipcode[i]).town ))
				{
				post_num = (json.zipcode[i]).zipcode;
				//この時、ブログ検索用の住所も一緒に取得します
				baddress = (json.zipcode[i]).city + (json.zipcode[i]).town ;
				
				}
			}
			
		
			//一致するものが無ければ、一番最初の郵便番号データを採用します。
			if(post_num == "")
			{
				post_num = json.zipcode.a1.zipcode ;
				baddress = ad_shi ;
			}
			
			
			
			//郵便番号を表示します
			$('post_r').innerHTML = post_num ;
			
			
			}	
}
	
//---------郵便番号検索終了-------






    
    










