Доставка на основе Яндекс карты

F
На сайте с 07.11.2019
Offline
0
190

Здравствуйте. Есть такой код Яндекс карты на основе API 1.1 Раньше все это работало без ключей, теперь нужно получать ключ и подключать API 2.1. Можно ее переделать под 2.1?



<p><script src="https://api-maps.yandex.ru/1.1/?key&modules=pmap&wizard=constructor" type="text/javascript"></script>
<script type="text/javascript">
var map, point, router, center, price = 52;

function calc(distance) {
return '<br />Стоимость доставки: <b>' + (distance * price).toFixed(2) + '</b> руб.';
}

YMaps.jQuery(function () {
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
map.enableScrollZoom();

center = new YMaps.GeoPoint(36.911111, 56.092778)

map.setCenter(center, 11);
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.Zoom());

YMaps.Events.observe(map, map.Events.Click, function (map, e) {
if (point) {
map.removeOverlay(point);
}
if (router) {
map.removeOverlay(router);
}

point = new YMaps.Placemark(e.getGeoPoint());
router = new YMaps.Router([center, e.getGeoPoint()]);

map.addOverlay(router);

YMaps.Events.observe(router, router.Events.Success, function() {
var distance = router.getDistance() / 1000;
point.description = calc(distance);
map.addOverlay(point);
point.openBalloon();
});

YMaps.Events.observe(router, router.Events.RouteError, function (link, number) {
alert('Не удается проложить маршрут до точки № ' + number);
});

YMaps.Events.observe(router, router.Events.GeocodeError, function (link, number) {
alert('Ошибка при геокодировании точки № ' + number);
});


});
});


function showAddress(value) {
map.removeOverlay(point);
if (router) {
map.removeOverlay(router);
}
var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
if (this.length()) {
point = this.get(0);
var geoPoint = point.getGeoPoint();
point = new YMaps.Placemark(geoPoint);
router = new YMaps.Router([center, geoPoint]);
map.addOverlay(router);

YMaps.Events.observe(router, router.Events.Success, function() {
var distance = router.getDistance() / 1000;
point.description = calc(distance);
map.addOverlay(point);
point.openBalloon();
});

YMaps.Events.observe(router, router.Events.RouteError, function (link, number) {
alert('Не удается проложить маршрут до точки № ' + number);
});

YMaps.Events.observe(router, router.Events.GeocodeError, function (link, number) {
alert('Ошибка при геокодировании точки № ' + number);
});
}
});
};
</script></p>
<form action="#" onsubmit="showAddress(this.address.value);return false;">
<div style="text-align: center; width: 100%;">
<p><input id="address" style="width: 400px;" type="text" value="Москва" /><input type="submit" value="Искать" /><br /><small></small></p>
</div>
<div id="YMapsID" style="width: 100%; height: 500px;">&nbsp;</div>
</form>

ME
На сайте с 03.07.2017
Offline
66
#1

Можно........

F
На сайте с 07.11.2019
Offline
0
#2
MkrtElion:
Можно........

Что нужно сделать? Там есть изменения, что нужно заменить?



<script src="https://api-maps.yandex.ru/2.1/?apikey=ваш API-ключ&lang=ru_RU" type="text/javascript"></script>
<script type="text/javascript">
/* При успешной загрузке API выполняется
соответствующая функция */
ymaps.ready(function () {
// ...
});
</script>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий