|
API Яндекс карт
#39912504
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
На сайте имеется модуль для расчета стоимости доставки, основанный на АПИ Яндекс карт.
в хеадер вставлен следующий код:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123.
<script type="text/javascript">
ymaps.ready(init);
function init() {
// Стоимость за километр.
var DELIVERY_TARIFF = 55,
// Минимальная стоимость.
MINIMUM_COST = 1500,
myMap = new ymaps.Map('map', {
center: [60.906882, 30.067233],
zoom: 9,
controls: []
}),
// Создадим панель маршрутизации.
routePanelControl = new ymaps.control.RoutePanel({
options: {
// Добавим заголовок панели.
showHeader: true,
title: 'Расчёт доставки',
maxWidth: 300
}
}),
zoomControl = new ymaps.control.ZoomControl({
options: {
size: 'small',
float: 'none',
position: {
bottom: 145,
right: 10
}
}
});
// Пользователь сможет построить только автомобильный маршрут.
routePanelControl.routePanel.options.set({
types: {auto: true}
});
// Если вы хотите задать неизменяемую точку "откуда", раскомментируйте код ниже.
routePanelControl.routePanel.state.set({
fromEnabled: false,
from: 'Малое Карлино'
});
myMap.controls.add(routePanelControl).add(zoomControl);
//myMap.events.add('click', function (e) {
// var coords = e.get('coords');
// var coords_txt = [
// coords[0].toPrecision(6),
// coords[1].toPrecision(6)
// ].join(', ');
// alert( "Проверка: ljcnfdrf = " + coords);
//});
// Получим ссылку на маршрут.
routePanelControl.routePanel.getRouteAsync().then(function (route) {
// Зададим максимально допустимое число маршрутов, возвращаемых мультимаршрутизатором.
route.model.setParams({results: 1}, true);
// Повесим обработчик на событие построения маршрута.
route.model.events.add('requestsuccess', function () {
var activeRoute = route.getActiveRoute();
if (activeRoute) {
// Получим протяженность маршрута.
var length = route.getActiveRoute().properties.get("distance");
// Вычислим стоимость доставки.
//price = calculate(Math.round(length.value / 1000)),
//price_pre = calculate(Math.ceil(length.value/10000)*10);
var rasstoyanie=length.value/1000;
if (rasstoyanie < 200)
{
//alert( "Привет1 = " + rasstoyanie);
var price = calculate(Math.ceil(length.value/10000)*10);
}
else
{
//alert( "Привет2 = " + rasstoyanie);
var price=Math.ceil((4000+((rasstoyanie*2)*10))/10)*10;
}
// Создадим макет содержимого балуна маршрута.
balloonContentLayout = ymaps.templateLayoutFactory.createClass(
'<span>Расстояние: ' + length.text + '.</span><br/>' +
'<span style="font-weight: bold; font-style: italic">Стоимость доставки: <g id=dostavka>' + price + '</g> руб.</span><br/>' +
'<hr><span>Цена указана для автомобиля 30 м³<br>Из расчета до 40 панелей за 1 доставку');
// Зададим этот макет для содержимого балуна.
route.options.set('routeBalloonContentLayout', balloonContentLayout);
// Откроем балун.
activeRoute.balloon.open();
}
});
});
map.geoObjects.each(function (geoObject) {
if (geoObject instanceof ymaps.Placemark) {
console.log(geoObject.geometry.getCoorditanes())
alert(geoObject.geometry.getCoorditanes());
}
});
// Функция, вычисляющая стоимость доставки.
function calculate(routeLength) {
return Math.max(routeLength * DELIVERY_TARIFF, MINIMUM_COST);
}
}
</script>
вопрос в следующем как мне в баллун всплывающий на карте вставить координаты точки??
|
|
|