YOLP(地図)

サービスを利用する

目次




ジオコーダー(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.Gid)

店舗名寄せは、名称や緯度経度、電話番号などから検索を行い、同一と思われる拠点の名称、住所、電話番号などの情報を取得する機能を提供します。
異なる条件で拠点情報を名寄せした結果を2つの地図オブジェクト上に表示
店舗名寄せ機能を利用するには、Y.Gidオブジェクトのgetメソッドに店舗の名称を、より精度の高い名寄せをするためのオプションとして住所文字列や電話番号文字列を引数で渡して呼び出します。

店舗名寄せ結果を地図に表示する

//店舗名寄せ結果を宣言済みのMapオブジェクト(変数名map)に表示するサンプルです。
          
var name = "東京ミッドタウン";
var latlng = map.getCenter();
var addr = "";
var tel  = "";
var options = {
    "address":addr, 
    "phone":tel
};

//店舗名寄せ取得用オブジェクトを生成します。
var gid = new Y.Gid();

//指定した名称と緯度経度から、名寄せ候補となる拠点情報を取得します。
gid.get(name, latlng, options, function(result){
    //結果のYDFを地図上にマーカーとして追加します。
    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.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);