サービスを利用する
目次
- 基本的な使い方
- サービスを利用する
- プラグインを利用する
- サンプルコード
- レファレンス
ジオコーダー(Y.GeoCoder)
ジオコーダーは、住所文字列から地理座標(緯度経度)へ変換するジオコーディング機能を提供します。
ジオコーディング機能を利用するには、Y.GeoCoder
オブジェクトのexecuteメソッドにリクエストパラメータqueryとして文字列を引数で渡して呼び出します。
//住所から、緯度経度を求めるジオコーディングのサンプルです。 var address = "東京都港区六本木"; var request = { query : address }; var geocoder = new Y.GeoCoder(); geocoder.execute( request , function( ydf ) { if ( ydf.features.length > 0 ) { var latlng = ydf.features[0].latlng; alert(latlng.lat() + "," + latlng.lng()); } } );
ジオコーディング結果が得られたとき、Y.YDF
オブジェクトとして次のように構造化されたJSON形式で受け取ります。
サンプルのように、result.countまたはfeatures.lengthが0件でないか確認して、先頭の拠点情報を取得することで、問い合わせた文字列に対応する拠点の地理座標を利用できます。
{ "result": { "count": データ件数, "total": 総データ件数, "start": 取得開始件数, "latency": 処理時間, "status": 終了ステータスコード, "description": データの説明, "copyright": コピーライト }, "features": [ { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード } }, { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード } }, ...result.countの件数分だけ繰り返し ] }
ジオコーダーを利用するサンプルページはこちらになります。
リバースジオコーダー(Y.GeoCoder)
リバースジオコーダーは、緯度経度から、その地点の住所文字列を求める、リバースジオコーディング機能を提供します。
リバースジオコーディング機能を利用するには、Y.GeoCoder
オブジェクトのexecuteメソッドにリクエストパラメータlatlngとしてY.LatLng
オブジェクトを引数で渡して呼び出します。
//緯度経度から、住所を求めるリバースジオコーディングのサンプルです。 var latlng = new Y.LatLng(35.662484, 139.734222); var request = { "latlng": latlng }; var geocoder = new Y.GeoCoder(); geocoder.execute( request , function( ydf ) { if ( ydf.features.length > 0 ) { var feature = ydf.features[0]; alert(feature.property.Address); } } );
ジオコーディング結果が得られたとき、Y.YDF
オブジェクトとして次のように構造化されたJSON形式で受け取ります。
サンプルのように、result.countまたはfeatures.lengthが0件でないか確認して、先頭の拠点情報を取得することで、問い合わせた文字列に対応する拠点の住所文字列情報を利用できます。
{ "result": { "count": データ件数, "total": 総データ件数, "start": 取得開始件数, "latency": 処理時間, "status": 終了ステータスコード, "description": データの説明, "copyright": コピーライト }, "features": [ { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード } }, { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード, } }, ...result.countの件数分だけ繰り返し ] }
リバースジオコーダーを利用するサンプルページはこちらになります。
コンテンツジオコーダー(Y.GeoCoder)
コンテンツジオコーダーは、文字列から場所を表すキーワードを検出し、その検出されたキーワード群の位置情報(緯度、経度など)をジオコーディングする機能を提供します。
コンテンツジオコーディング機能を利用するには、Y.GeoCoder
オブジェクトのexecuteメソッドにリクエストパラメータcontentとして文字列を引数で渡して呼び出します。
文字列から場所を表すキーワードを地図に表示する
//コンテンツジオコーダー結果を宣言済みのMapオブジェクト(変数名map)に表示するサンプルです。 var content = "東京都港区赤坂から東京都千代田区神田錦町まで50分ほどかかります。"; //ジオコーダーオブジェクトを生成します。 var geocoder = new Y.GeoCoder(); var request = {"content" : content}; //ジオコーディングした結果を地図上に表示します。 geocoder.execute(request ,function(ydf){ if(ydf.features.length > 0){ map.addFeatures(result.features); } } );
文字列の中から場所を表すキーワードが検出されジオコーディング結果が得られたとき、Y.YDF
オブジェクトとして次のように構造化されたJSON形式で受け取ります。
サンプルのように、検出された拠点情報を全てY.Map
オブジェクトのaddFeaturesメソッドに引数で渡すことで、文字列中に含まれたキーワードの位置を地図上に表示できます。
{ "result": { "count": データ件数, "total": 総データ件数, "start": 取得開始件数, "latency": 処理時間, "status": 終了ステータスコード, "description": データの説明, "copyright": コピーライト }, "features": [ { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード, } }, { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード, } }, ...result.countの件数分だけ繰り返し ] }
コンテンツジオコーダーを利用するサンプルページはこちらになります。
ローカルサーチ(Y.LocalSearch)
ローカルサーチは、店舗、イベント、クチコミ情報などの地域・拠点情報をキーワードから検索する機能を提供します。
ローカルサーチ機能を利用するには、Y.LocalSearch
オブジェクトのsearchメソッドに検索キーワード文字列を引数で渡して呼び出します。
ローカルサーチ結果を地図に表示する
//ローカルサーチ結果を宣言済みのMapオブジェクト(変数名map)に表示するサンプルです。 var keyword = "東京ミッドタウン";//検索キーワード var cid = "d8a23e9e64a4c817227ab09858bc1330";//電話帳カセットID var options = {}; //ローカルサーチオブジェクトを生成します。 var local = new Y.LocalSearch(); //変数keywordを検索キーワードとして、電話帳を検索します。 local.search(keyword, cid, options, function(ydf){ //結果のYDFを地図上にマーカーとして追加します。 map.addFeatures(ydf.features); });
ローカルサーチの結果はY.YDF
オブジェクトとして次のように構造化されたJSON形式で受け取ります。
サンプルのように、検索キーワードにヒットした拠点情報を全てY.Map
オブジェクトのaddFeaturesメソッドに引数で渡すことで、文字列中に含まれたキーワードの位置を地図上に表示できます。
{ "result": { "count": データ件数, "total": 総データ件数, "start": 取得開始件数, "latency": 処理時間, "status": 終了ステータスコード, "description": データの説明, "copyright": コピーライト }, "features": [ { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード, } }, { "name": 拠点名称, "latlng": 拠点位置を表すY.LatLngオブジェクト, "property": { "Address": 拠点住所文字列, "GovernmentCode": 住所コード, } }, ...result.countの件数分だけ繰り返し ] }
ローカルサーチを利用するサンプルページはこちらになります。
経路探索レイヤー(Y.RouteSearchLayer)
経路探索レイヤーは、指定した地点間の経路を探索して地図上に表示する機能を提供します。
経路探索レイヤーを使って地点間の経路を地図上に表示するには、Y.RouteSearchLayer
オブジェクトをY.Map
オブジェクトのaddLayerメソッドに引数として渡して追加してから、Y.RouteSearchLayer
オブジェクトのexecuteメソッドに経路の地点を持つY.LatLngオブジェクトの配列を引数として渡して呼び出すことで、経路が描画されます。
経路探索を行い地図上に結果を表示する
経路探索レイヤーのexecuteメソッドに緯度経度の配列を指定すると、レイヤー上にその経路が表示されます。
//宣言済みのMapオブジェクト(変数名map)に経路探索レイヤーを追加するサンプルです。 //東京駅~東京ミッドタウン~新宿駅への経路を探索します。 var latlngs = [ new Y.LatLng(35.68156404067264,139.76721008431142), //東京駅 new Y.LatLng(35.6657214,139.7310058), //東京ミッドタウン new Y.LatLng(35.69073464614311,139.6998272943479) //新宿駅 ]; var config = { "traffic":"car" }; //RouteSearchLayerオブジェクトをMapオブジェクトに追加します。 var layer = new Y.RouteSearchLayer(); map.addLayer(layer); //経路の地点をexecuteメソッドの引数として渡して呼び出します。 layer.execute(latlngs,config);