//файл var map = false; var geoResult; var mas_point_add_to_maps = new Array(); var drag_placemark = false; var go_function_begin_init_maps = false; var go_function_end_init_maps = false; var s_name_form_bind_maps = ""; var open_first_point_maps = false; var set_zoom_maps_point = false; var mas_point_maps = []; function init_yandex_maps() { set_longitude_yandex_maps=s_longitude_yandex_maps; set_latitude_yandex_maps=s_latitude_yandex_maps; set_zoom_yandex_maps=s_zoom_yandex_maps; if ( go_function_begin_init_maps ) { go_function_begin_init_maps(); } var myOptions = { center: [set_latitude_yandex_maps, set_longitude_yandex_maps], zoom: set_zoom_yandex_maps, type: "yandex#map" }; map = new ymaps.Map("maps_canvas", myOptions); //map.setCenter(new YMaps.GeoPoint(set_longitude_yandex_maps, set_latitude_yandex_maps), set_zoom_yandex_maps);// долгота, широта | longitude - долгота, latitude - широта //map.setType(YMaps.MapType.MAP);//MAP , SATELLITE , HYBRID map.controls.add("mapTools");//стандартный набор кнопок map.controls.add("zoomControl");// Добавление кнопки изменения масштаба map.controls.add("typeSelector");// Добавление списка типов карты //map.addControl(new YMaps.ToolBar()); //панель инструментов //map.addControl(new YMaps.MiniMap()); //обзорная карта //map.addControl(new YMaps.ScaleLine()); //масштабная линейка if ( go_function_end_init_maps ) { go_function_end_init_maps(); } } function on_show_box_maps() { on_show_yandex_maps(); } function on_hide_box_maps() { on_hide_yandex_maps(); } function on_show_yandex_maps() { document.getElementById("box_maps_canvas").style.display = "block"; init_yandex_maps(); } function on_hide_yandex_maps() { document.getElementById("box_maps_canvas").style.display = "none"; //document.getElementById("maps_canvas").innerHTML = ""; drag_placemark = false; if ( map ) { map.destroy(); //map = false; } } function set_init_maps_drag_point_maps() { obj_form_create = document.forms[s_name_form_bind_maps]; var form_lng_geo = parseFloat(obj_form_create.longitude.value); var form_lat_geo = parseFloat(obj_form_create.latitude.value); if ( form_lng_geo && form_lat_geo ) { set_longitude_yandex_maps=form_lng_geo; set_latitude_yandex_maps=form_lat_geo; //set_zoom_yandex_maps=zoom_yandex_maps; //alert(set_longitude_yandex_maps + " " + set_latitude_yandex_maps); } } function set_drag_point_maps() { var obj_form_create = document.forms[s_name_form_bind_maps]; var start_longitude_yandex_maps = s_longitude_yandex_maps; var start_latitude_yandex_maps = s_latitude_yandex_maps; var form_lng_geo = parseFloat(obj_form_create.longitude.value); var form_lat_geo = parseFloat(obj_form_create.latitude.value); map.events.add("click", function (e) { //alert(mEvent.getGeoPoint()); create_drag_placemark(1,1,e.get("coordPosition")); }); if ( form_lng_geo && form_lat_geo ) { start_longitude_yandex_maps = form_lng_geo; start_latitude_yandex_maps = form_lat_geo; //alert(form_lng_geo + " " + form_lat_geo); create_drag_placemark(start_longitude_yandex_maps,start_latitude_yandex_maps,false); } } function create_drag_placemark(longitude,latitude,geoPoint) { obj_form_create = document.forms[s_name_form_bind_maps]; var setPointPlacemark = false; if ( geoPoint ) { setPointPlacemark = geoPoint; longitude = geoPoint[1]; latitude = geoPoint[0]; } else { setPointPlacemark = [latitude, longitude]; } if ( drag_placemark ) { //alert("уже есть метка!"); //drag_placemark.setGeoPoint(setPointPlacemark); drag_placemark.geometry.setCoordinates(setPointPlacemark) } else { drag_placemark = new ymaps.Placemark(setPointPlacemark, { hintContent: 'Перетащите эту метку в нужное место.' }, { draggable: true , hasBalloon: false, preset: 'twirl#violetDotIcon' } ); //drag_placemark.name = "Метка"; //drag_placemark.description = "Перетащите эту метку в нужное место"; map.geoObjects.add(drag_placemark); } obj_form_create.longitude.value=longitude; obj_form_create.latitude.value=latitude; drag_placemark.events.add( "drag", function (e) { var GeoKoor = drag_placemark.geometry.getCoordinates(); //alert(GeoKoor.getLng()); //alert(GeoKoor.getLat()); obj_form_create.longitude.value=GeoKoor[1]; obj_form_create.latitude.value=GeoKoor[0]; } ); } function set_mas_point_to_maps() { //должен быть определен массив точек mas_point_maps var n,one_point; for (n=0;n < mas_point_maps.length; n++ ) { one_point = mas_point_maps[n]; if ( !one_point["lng"] || !one_point["lat"] ) continue; var placemark = new ymaps.Placemark( [one_point["lat"], one_point["lng"]], { //iconContent : "", balloonContent : "
"+ decodeURIComponent(one_point["name"])+"
" }, { draggable : false, hideIconOnBallon : false } );//, {draggable: true , hasBalloon: false}); //placemark.name = "

"+ decodeURIComponent(one_point["name"])+"

"; //var short_description =decodeURIComponent(one_point["short_description"]); //placemark.description = ""; //map.addOverlay(placemark); map.geoObjects.add(placemark); mas_point_add_to_maps[mas_point_add_to_maps.length] = placemark; } if ( typeof( open_first_point_maps ) != "undefined" && open_first_point_maps && mas_point_add_to_maps.length > 0 ) { mas_point_add_to_maps[0].balloon.open(); } } function set_init_maps_mas_point_maps() { if ( typeof( set_zoom_maps_point ) != "undefined" ) { set_zoom_yandex_maps=s_zoom_yandex_maps_point; } //должен быть определен массив точек mas_point_maps, центрирование карты будет по первой точке if ( mas_point_maps && mas_point_maps.length > 0 ) { var lng_geo = mas_point_maps[0]["lng"]; var lat_geo = mas_point_maps[0]["lat"]; if ( lng_geo && lat_geo ) { set_longitude_yandex_maps=lng_geo; set_latitude_yandex_maps=lat_geo; //set_zoom_yandex_maps=zoom_yandex_maps; //alert(set_longitude_yandex_maps + " " + set_latitude_yandex_maps); } } } function open_num_mas_point_to_maps( num_i ) { if ( mas_point_add_to_maps && mas_point_add_to_maps[num_i] ) { mas_point_add_to_maps[num_i].balloon.open(); if ( document.getElementById("maps_canvas") ) { document.getElementById("maps_canvas").scrollIntoView(true); //document.getElementById("maps_canvas").scrollBy(-5,0); window.scrollBy(0,-7); } } } function showAddress (value) { ymaps.geocode(value, {results: 100}).then( function(res) { if ( res.geoObjects.getLength() ) { var point = res.geoObjects.get(0).geometry.getCoordinates(); create_drag_placemark(1, 1, point); map.panTo(point); } else { alert("Ничего не найдено!") } }); }