ジオコーディング

ソースコード

//YOLP操作のためのJavaScriptインターフェースオブジェクト
var YOLPSL;
//YOLP地図オブジェクト(Mapオブジェクト)
var ymap;           

///(カセットを含む)YOLPSLロード完了イベント
/// map:YOLP地図オブジェクト
/// cassettes:カセットオブジェクトのディクショナリ(キーはカセット名)
function onLoadComplete(map, cassettes) {
    ymap = map;
    var slPlugin = document.getElementById("slPlugin");
    if (slPlugin && slPlugin.Content) {
        YOLPSL = slPlugin.Content.jsInterface;
        
        var SliderZoomControlHorizontal = YOLPSL.CreateInstance("SliderZoomControlHorizontal");
        ymap.AddControl(SliderZoomControlHorizontal);
        
        var LayerSetControl = YOLPSL.CreateInstance("LayerSetControl");
        ymap.AddControl(LayerSetControl);
    }
}


function doGeocode() {
    document.getElementById("txarea").value = "";
    var geocoder = YOLPSL.CreateInstance("GeoCoder");
    geocoder.addEventListener("ExecuteCallback", function(sender, res) {
        if (res.Success && res.Ydf.Feature.length > 0) {

            var msg = "";
            var features = res.Ydf.Feature;

            for (var i = 0; i < features.length; i++) {
                //住所
                var addr = features[i].Property.Address;
                //緯度経度
                var ll = features[i].Geometry.Coordinates[0];

                msg += addr + "(" + ll.Lat + "," + ll.Lon + ")\n";
            }
            document.getElementById('txarea').value = msg;
        } else {
            alert("見つかりません");
        }
    });
    
    
    var keyword = document.getElementById('keyword').value;
    if (keyword == null) {
        return;
    }
    
    geocoder.Execute(keyword, "l1PAPXyxg66W3uMhE3t9_GP_Q0T1iQ7NCBuUh3_UIxL6DqGAAp1nRyY_vhwNV5Kn8xSQxFk-");

}
Webサービス by Yahoo! JAPAN