Клуб API Карт

Как добавить KML файл на Яндекс.Карты?

imperior72
9 марта 2015, 21:38

Как добавить этот KML файл на Яндекс.Карты версия 2.1?

http://weather.wdtinc.com/clients/weatherbell/data/kml/wwlln.php?GEOBOUNDS=90,180,-90,-180 

Раньше на сайте происходил импорт с помощью данного яваскрипта: 

var map;
var s;
var first=true;
var lr=0;
var ll=0;
var lt=0;
var lb=0;
var d=0.01;

window.onload = function () {
    map = new YMaps.Map(document.getElementById("YMapsID"));
    map.addControl(new YMaps.TypeControl([YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID],[0,1,2]), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT,new YMaps.Size(37,3)));
    map.addControl(new YMaps.SmallZoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_RIGHT,new YMaps.Size(3,3)));
    map.setCenter(new YMaps.GeoPoint(37.617, 55.756), 8);
    YMaps.Events.observe(map, map.Events.Update, ReloadPoints);
    YMaps.Events.observe(map, map.Events.MoveEnd, ReloadPoints);
    ReloadPoints();
}
function ReloadPoints(){
    var bounds=map.getBounds();
    var r=bounds.getRight();
    var l=bounds.getLeft();
    var t=bounds.getTop();
    var b=bounds.getBottom();
    if((r>=lr) || (l<=ll) || (t<=lt) || (b >=lb)){
        ll=bounds.getLeft()-d;
        lr=bounds.getRight()+d;
        lt=bounds.getTop()+d;
        lb=bounds.getBottom()-d;
        var url='http://gsm-msk.m-pro.ru/weather/l.php?l='+ll+'&r='+lr+'&t='+lt+'&b='+lb;
        var yml = new YMaps.YMapsML(url);

        YMaps.Events.observe(yml, yml.Events.Fault, function (m2, error) {
            alert(error);
        });
        YMaps.Events.observe(yml, yml.Events.Load, function (error) {
            map.removeAllOverlays();
            map.addOverlay(yml);
            if(first){ first=false; }
        });
    }
}
4 комментария
Подписаться на комментарии к посту

Что именно не получается?

Не получается сделать так, чтобы был расчет GEOBOUNDS по координатам на карте. К примеру, пользователь сайта открыл карту с координатами 57N,35W,25S,71E. Хотелось бы чтоб в данном случае был импорт этого KML файла с учетом координат: http://weather.wdtinc.com/clients/weatherbell/data/kml/wwlln.php?GEOBOUNDS=57,35,25,71

метод map.getBounds есть в АПИ 2.1, только он возвращает массив вида [[55.12789200804043,35.6445539375],[56.370163426186025,39.599632062500014]]

 

Типа того:

 

var bounds = map.getBounds();
ll=bounds[0][0]-d;
lr=bounds[1][0]+d;
lt=bounds[1][1]+d;
lb=bounds[0][1]-d;

Этот вариант тоже меня вполне устраивает. Вы можете создать код, чтоб я смог его добавить в файл php?