Построение карты с помощью 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
});
});
}
});
});
}
