Построение карты с помощью API Яндекс.Карты


<script type="text/j-avascript" src="http://api-maps.yandex.ru/2.1/?coordorder=longlat&lang=ru-RU"></script>

<div id="frameForMap" style="width:600px;height:450px;"></div>

<script type="text/j-avascript">
    ymaps.ready(function(){
        var gc = ymaps.geocode(document.getElementById('addressForMap').innerHTML, {results: 1, json: true});
        gc.then(function(res){
            var coord = res.GeoObjectCollection.featureMember[0].GeoObject.Point.pos.split(' ');
            var map = new ymaps.Map('frameForMap', {
                center: coord, 
                zoom: 15
            });
            var pm = new ymaps.Placemark(coord, {
                hintContent: document.getElementById('addressForMap').innerHTML,
                balloonContent: document.getElementById('balloonContent').innerHTML
            });
            map.geoObjects.add(pm);
                        
			var lower = res.GeoObjectCollection.featureMember[0].GeoObject.boundedBy.Envelope.lowerCorner.split(' ');
			var upper = res.GeoObjectCollection.featureMember[0].GeoObject.boundedBy.Envelope.upperCorner.split(' ');
			var bnds = [lower,upper];
			var map2 = new ymaps.Map('townMap', {
				bounds: bnds
			});
			map2.setZoom(map2.getZoom()+1);
			map2.geoObjects.add(new ymaps.Placemark(map2.getCenter()));
        },
        function(err){
        });
    });
</script>

Добавление на карту поиска с возможностью перетягивания метки


        function init () {
            var myMap = new ymaps.Map("YMapsIDnc_map", {
                    center: [coord_y, coord_x],
                    zoom: zoom_
                });

            var myPlacemark = new ymaps.Placemark([coord_y, coord_x], {
                    hintContent: content_title
                }, {
                    draggable: true
                });

            var lastPM = myPlacemark;

            myMap.controls.add("mapTools")
    		.add("zoomControl")
	    	.add("typeSelector");
            var srcControl = new ymaps.control.SearchControl();
            myMap.controls.add(srcControl);
            srcControl.events.add("resultshow",function(e){
                srcControl.getResult(e.originalEvent.resultIndex).then(function(result){
                    chMap(result);
                    result.options.set("draggable", true);
                    result.events.add("dragend", function (e) {
                        chMap(result);
                    });
                });
            });

            myPlacemark.events.add("dragend", function (e) {
                chMap(myPlacemark);
            });
            myMap.geoObjects.add(myPlacemark);
            myMap.events.add("boundschange", function (e) {
                chMap(lastPM);
            });

            function chMap(geo){
                lastPM = geo;
                document.getElementById("nc_map").value=geo.geometry.getCoordinates()+"::"+myMap.getZoom();
            }
        }


// Поиск координат и оптимального зума по адресу:

ymaps.ready(function(){
var address = '.json_encode($address).';
var gc = ymaps.geocode(address, {results: 1});
gc.then(function(res){
if(res.geoObjects.getLength()){
var coord = res.geoObjects.get(0).geometry.getCoordinates();
ymaps.getZoomRange("yandex#map", coord).then(function(zooms){
var map = new ymaps.Map("YMapsID'.$field->engtitle.'", {
center: coord,
zoom: zooms[1]-2,
controls: ["zoomControl", "trafficControl", "typeSelector", "rulerControl", "fullscreenControl", "geolocationControl"]
});
});
}
});
});
// Поиск области с оптимальным зумом (в примере - город) var gc = ymaps.geocode('Симферополь', {results: 1, kind: 'locality', json: true}); gc.then(function(res){ if(res.GeoObjectCollection.featureMember.length > 0){ var envelope = res.GeoObjectCollection.featureMember[0].GeoObject.boundedBy.Envelope; var lowerCorner = envelope.lowerCorner.split(' ').reverse(); var upperCorner = envelope.upperCorner.split(' ').reverse(); map = new ymaps.Map("map_id", { bounds: [lowerCorner, upperCorner] }); } });

 

Карта по клику во всплывающем окне (первая функция - обработчик события клика):

var myCompOnMapAddr = "";

function myCompShowOnMap(){
	var city = jQuery('#mycomp_nc_city option:selected').text();
	var addr = jQuery('#mycomp_nc_addr').val();
	if(addr.indexOf(city) == -1){
		addr = 'г. '+city+', '+addr;
	}
	myCompOnMapAddr = addr;
	jQuery('#sbox-overlay, #sbox-window').remove();
    SqueezeBox.build();
    SqueezeBox.open('', {onOpen: myCompOnMapOpen, size: {x: 800, y: 600}});
}

function myCompOnMapOpen(){
	ymaps.ready(function(){
		var address = myCompOnMapAddr;
		var gc = ymaps.geocode(address, {results: 1});
		gc.then(function(res){
			if(res.geoObjects.getLength()){
				var coord = res.geoObjects.get(0).geometry.getCoordinates();
				ymaps.getZoomRange("yandex#map", coord).then(function(zooms){
					var map = new ymaps.Map("sbox-content", {
						center: coord,
						zoom: zooms[1]-2
					});
				});
			}
		});
	});
}