Перейти к содержанию
ZverBlin

API яндекс карт

Рекомендуемые сообщения

Необходимо реализовать API яндекс карту

https://tech.yandex.ru/maps/

ТЗ

Яндекс карта с отметками заводов на карте

Поля выбора:
1)Марки бетона

2)Количества

3)Поле ввода адреса доставки

 

Яндекс карта должна просчитывать расстояние от самого ближайшего завода, до адреса который указали.

Выводить цену бетона, цену доставки, итоговую стоимость, расстояние в км

 

*Учитывать, что каждый завод может иметь свои цены на бетон и доставку.

 

Примеры

http://www.beton-morton.ru/kalkulyator3/

http://www.transbeton.ru/calc/

 

Писать в ЛС

Либо скайп monsterbeats-tour

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен, Паш, как вариант...

 

ZverBlin

 

кстати, рекомендую Вам присмотреться к ashap и попытаться заключить с ним соглашение на доработки, знаю его как прекрасного кодера и очень спокойного и толерантного ( не в пример мне  :-D  ) исполнителя...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вообщем их нужно спарить)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне не нужно на опенкарт, мне надо для лендинга и для wordpressA

т.е просто работающий скрипт без модулей и т.д чтоб работал везде

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда тебе сюда

https://tech.yandex.ru/maps/

 

я бы сказал сюда https://tech.yandex.ru/maps/jsbox/2.1/

Вообще не очень сложно, даже можно код карты скопировать с того сайта и он будет работать.

Времени нет на это дело и надо координаты точек в карте прописывать чтобы они отображались

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


<div class="text">

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

<script src="http://api-maps.yandex.ru/2.0/index.xml?load=package.full&onload=init&lang=ru-RU&key=AKxh1VEBAAAA1AfPZwIAlP4oNwMlGkVDG9YVa47Upqm4ZxMAAAAAAAAAAACaG2kMzaTSwxHNx-jcPIw5ZSqeKw==" type="text/javascript"></script>

<script language="JavaScript">

var myMap;

var dost;

var cities = new Array();

$("#zakbut").hide();

function init() {

ymaps.geocode([55.640868,37.382591], { results: 1 }).then(function (res) {

// Выбираем первый результат геокодирования.

var firstGeoObject = res.geoObjects.get(0),

// Создаем карту с нужным центром.

myMap = new ymaps.Map("YMapsID", {

center: firstGeoObject.geometry.getCoordinates(),

zoom: 11

});

myMap.container.fitToViewport();

// Создаем метку с помощью вспомогательного класса.

var myPlacemark1 = new ymaps.Placemark(firstGeoObject.geometry.getCoordinates(), {

iconContent: '1',

balloonContent: 'Это мы',

hintContent: 'Это мы'

}, {

// Опции.

// Стандартная фиолетовая иконка.

preset: 'twirl#violetIcon'

});

myMap.geoObjects.add(myPlacemark1)

}, function (err) {

// Если геокодирование не удалось, сообщаем об ошибке.

alert(err.message);

});

cities[0] = "Апрелевка";

cities[1] = "Балашиха";

cities[2] = "Бронницы";

cities[3] = "Верея";

cities[4] = "Видное";

cities[5] = "Волоколамск";

cities[6] = "Воскресенск";

cities[7] = "Высоковск";

cities[8] = "Дедовск";

cities[9] = "Дзержинский";

cities[10] = "Дмитров";

cities[11] = "Долгопрудный";

cities[12] = "Дрезна";

cities[13] = "Домодедово";

cities[14] = "Дубна";

cities[15] = "Егорьевск";

cities[16] = "Железнодорожный";

cities[17] = "Жуковский";

cities[18] = "Зарайск";

cities[19] = "Зеленоград";

cities[20] = "Ивантеевка";

cities[21] = "Истра";

cities[22] = "Кашира";

cities[23] = "Климовск";

cities[24] = "Клин";

cities[25] = "Коломна";

cities[26] = "Королев";

cities[27] = "Котельники";

cities[28] = "Красноармейск";

cities[29] = "Красногорск";

cities[30] = "Краснозаводск";

cities[31] = "Краснознаменск";

cities[32] = "Куровское";

cities[33] = "Ликино-Дулево";

cities[34] = "Лобня";

cities[35] = "Лосино-Петровский";

cities[36] = "Луховицы";

cities[37] = "Лыткарино";

cities[38] = "Люберцы";

cities[39] = "Можайск";

cities[40] = "Москва";

cities[41] = "Мытищи";

cities[42] = "Наро-Фоминск";

cities[43] = "Ногинск";

cities[44] = "Одинцово";

cities[45] = "Ожерелье";

cities[46] = "Озеры";

cities[47] = "Орехово-Зуево";

cities[48] = "Павловский Посад";

cities[49] = "Подольск";

cities[50] = "Протвино";

cities[51] = "Пушкино";

cities[52] = "Пущино";

cities[53] = "Раменское";

cities[54] = "Реутов";

cities[55] = "Руза";

cities[56] = "Рошаль";

cities[57] = "Сергиев Посад";

cities[58] = "Серпухов";

cities[59] = "Солнечногорск";

cities[60] = "Ступино";

cities[61] = "Сходня";

cities[62] = "Талдом";

cities[63] = "Троицк";

cities[64] = "Фрязино";

cities[65] = "Химки";

cities[66] = "Хотьково";

cities[67] = "Черноголовка";

cities[68] = "Чехов";

cities[69] = "Шатура";

cities[70] = "Щербинка";

cities[71] = "Щёлково";

cities[72] = "Электрогорск";

cities[73] = "Электросталь";

cities[74] = "Электроугли";

cities[75] = "Юбилейный";

cities[76] = "Яхрома";

}

function findPartial( a, s )

{

for( var i = 0; i < a.length; ++i )

{

if( a.toLowerCase().indexOf( s.toLowerCase() ) >= 0 ) $("#ccs").html( $("#ccs").html() + "<a href=JavaScript:addcity('"+i+"')>" + cities + "</a><br>");

}

}

function addcity(val)

{

$("#addr").val(cities[val]);

$("#ccs").html("");

}

function citysearch()

{

$("#ccs").html("");

$("#cost").html("");

if ($("#addr").val().length>0) findPartial( cities, $("#addr").val() );

}

function calculate()

{

$("#cnt").val($("#cnt").val().replace(",","."));

$("#zakbut").hide();

$("#YMapsID").html("");

myMap = new ymaps.Map("YMapsID", {

center: [55.64, 37.38],

zoom: 10

});

ymaps.route([[55.640868,37.382591],''+$("#addr").val()+''], { mapStateAutoApply: true }).then(function (route) {

route.getPaths().options.set({

strokeColor: '0000ffff',

opacity: 0.9

});

myMap.geoObjects.add(route);

if (route.getLength()/1000>=200)

{

$("#cost").html("<font color='red'><b>Доставка осуществляется только в пределах Московской области</b></font>");

return;

}

if (route.getLength()/1000<=50) dost = 650;

if (route.getLength()/1000<=40) dost = 600;

if (route.getLength()/1000<=30) dost = 550;

if (route.getLength()/1000<=25) dost = 500;

if (route.getLength()/1000<=20) dost = 450;

if (route.getLength()/1000<=15) dost = 400;

if (route.getLength()/1000<=10) dost = 350;

if (route.getLength()/1000<=5) dost = 300;

if (route.getLength()/1000>50)

{

$("#cost").html("<b>Расстояние:</b>: ~" + Math.ceil(route.getLength()/1000) + " км. <br/> <b>Стоимость доставки:</b> на расстояния, превышающие 50 км цена договрная");

}

else

{

$("#zakbut").show();

if ($("#cnt").val()<8)

{

var sum = $("#marka").val()*Math.round($("#cnt").val()) + dost*8;

}

else

{

sum = $("#marka").val()*Math.round($("#cnt").val()) + dost*Math.round($("#cnt").val());

}

$("#cost").html("<b>Марка бетона</b>: "+$("#marka :selected").text()+" <br /><b>Объем</b>: "+$("#cnt").val()+" куб.м. <br /><b>Расстояние:</b> ~" + Math.ceil(route.getLength()/1000) + " км. <br/> <b>Стоимость бетона с учетом доставки:</b> " + sum +" руб.");

}

});

}

function zakaz()

{

$("#onzaktext").html("Марка бетона: "+$("#marka :selected").text()+"\nОбъем: "+$("#cnt").val()+" куб.м.\nАдрес: "+$("#addr").val());

$("#onzaktext").css("border", "2px solid #049800");

}

</script>

<table class="main" cellpadding="0" cellspacing="0">

<tbody>

<tr valign="top">

<td class="left" colspan="2">

<p class="tx5">

<b>Рассчитать стоимость бетона с учетом доставки:</b>

</p>

</td>

</tr>

<tr>

<td class="left">Марка бетона</td>

<td class="left">

<select name="marka" id="marka" style="width:200px;">

<option value="2600">М100 В7,5 (гравий)</option>

<option value="2800">М100 В7,5 (гранит)</option>

<option value="2700">М150 В12,5 (гравий)</option>

<option value="2900">М150 В12,5 (гранит)</option>

<option value="2800">М200 В15 (гравий)</option>

<option value="3000">М200 В15 (гранит)</option>

<option value="3000">М250 В20 (гравий)</option>

<option value="3150">М250 В20 (гранит)</option>

<option value="3150">М300 В22,5 (гравий)</option>

<option value="3300">М300 В22,5 (гранит)</option>

<option value="3300">М350 В25 (гравий)</option>

<option value="3450">М350 В25 (гранит)</option>

<option value="3450">М400 В30 (гравий)</option>

<option value="3650">М400 В30 (гранит)</option>

<option value="3750">М450 В35 (гравий)</option>

<option value="3900">М450 В35 (гранит)</option>

<option value="2390">М 100 (тощий бетон)</option>

<option value="2540">М 150 (тощий бетон)</option>

<option value="2690">М 200 (тощий бетон)</option>

<option value="2350">М 100 (Раствор)</option>

<option value="2450">М 150 (Раствор)</option>

<option value="2550">М 200 (Раствор)</option>

<option value="2750">М 250 (Раствор)</option>

</select>

</td>

</tr>

<tr>

<td class="left">Количество</td>

<td class="left"><input name="cnt" id="cnt" type="text"> куб.м</td>

</tr>

<tr>

<td class="left" valign="top">Адрес доставки</td>

<td class="left"><input name="addr" id="addr" onkeyup="citysearch()" style="width:200px;" type="text"><br>

<font color="#CCCCCC" size="2">cтрана, область, район, город, улица,<br> дом в вольной форме</font></td>

</tr>

<tr>

<td class="left"></td>

<td class="left">

<div id="ccs"></div>

</td>

</tr>

<tr>

<td class="left" colspan="2">

<input value="Рассчитать" onclick="calculate()" type="button"> 

<input value="Заказать" onclick="zakaz()" id="zakbut" style="display:none" type="button">

</td>

</tr>

<tr>

<td class="left" colspan="2">

<div id="cost" style="margin-top:5px; margin-bottom:5px"></div>

</td>

</tr>

<tr>

<td class="left" colspan="2">

<div id="YMapsID" style="width:480px;height:400px;"><ymaps style="z-index: 0; width: 480px; height: 400px;" class="ymaps-map ymaps-i-ua_js_yes"><ymaps unselectable="on" style="z-index: 500; position: absolute; width: 480px; height: 400px; left: 0px; top: 0px; -moz-user-select: none; cursor: url("http://api-maps.yandex.ru/2.0.39/release/../images/ef50ac9e93aaebe3299791c79f277f8e.cur") 16 16, url("http://api-maps.yandex.ru/2.0.39/release/../images/ef50ac9e93aaebe3299791c79f277f8e.cur"), move;" class="ymaps-glass-pane ymaps-events-pane"></ymaps><ymaps style="z-index: 100; position: absolute; left: 240px; top: 200px;" class="ymaps-layers-pane"><ymaps style="z-index: 150; position: absolute; transform: translate3d(0px, 0px, 0px) scale(1, 1);"><ymaps style="position: absolute; transform: translate3d(0px, 0px, 0px) scale(1, 1); left: 0px; top: 0px;"><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec04.maps.yandex.net/tiles?l=map&v=4.28.0&x=1235&y=641&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -426px; top: -557px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec03.maps.yandex.net/tiles?l=map&v=4.28.0&x=1235&y=642&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -426px; top: -301px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec04.maps.yandex.net/tiles?l=map&v=4.28.0&x=1235&y=643&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -426px; top: -45px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec03.maps.yandex.net/tiles?l=map&v=4.28.0&x=1235&y=644&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -426px; top: 211px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec02.maps.yandex.net/tiles?l=map&v=4.28.0&x=1236&y=641&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -170px; top: -557px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec01.maps.yandex.net/tiles?l=map&v=4.28.0&x=1236&y=642&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -170px; top: -301px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec02.maps.yandex.net/tiles?l=map&v=4.28.0&x=1236&y=643&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -170px; top: -45px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec01.maps.yandex.net/tiles?l=map&v=4.28.0&x=1236&y=644&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: -170px; top: 211px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec04.maps.yandex.net/tiles?l=map&v=4.28.0&x=1237&y=641&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 86px; top: -557px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec03.maps.yandex.net/tiles?l=map&v=4.28.0&x=1237&y=642&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 86px; top: -301px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec04.maps.yandex.net/tiles?l=map&v=4.28.0&x=1237&y=643&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 86px; top: -45px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec03.maps.yandex.net/tiles?l=map&v=4.28.0&x=1237&y=644&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 86px; top: 211px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec02.maps.yandex.net/tiles?l=map&v=4.28.0&x=1238&y=641&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 342px; top: -557px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec01.maps.yandex.net/tiles?l=map&v=4.28.0&x=1238&y=642&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 342px; top: -301px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec02.maps.yandex.net/tiles?l=map&v=4.28.0&x=1238&y=643&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 342px; top: -45px;"></ymaps><ymaps unselectable="on" style="opacity: 1; background-size: 100% 100%; position: absolute; -moz-user-select: none; background-image: url("http://vec01.maps.yandex.net/tiles?l=map&v=4.28.0&x=1238&y=644&z=11&scale=1&lang=ru_RU"); width: 256px; height: 256px; left: 342px; top: 211px;"></ymaps></ymaps></ymaps></ymaps><ymaps style="z-index: 1000; position: absolute;" class="ymaps-copyrights-pane"><ymaps><ymaps class="ymaps-copyrights-logo"><ymaps class="ymaps-logotype-div"><a href="http://maps.yandex.ru/?origin=jsapi&ll=37.382591,55.640868&z=11&l=map" target="_blank" class="ymaps-logo-link ymaps-logo-link-ru"><ymaps class="ymaps-logo-link-wrap"></ymaps></a></ymaps></ymaps><ymaps class="ymaps-copyrights-legend"><ymaps class="ymaps-copyright-legend-container"><ymaps class="ymaps-copyright-legend"><ymaps class="ymaps-copyright-legend-element ymaps-copyright-legend-element-black"><ymaps style="display: inline;">© Яндекс</ymaps></ymaps></ymaps><ymaps class="ymaps-copyright-agreement ymaps-copyright-agreement-black"><ymaps class="ymaps-copyrights-ua-extended"><ymaps><a href="http://maps.yandex.ru/?ll=37.382591,55.640868&z=11&origin=jsapi&fb" target="_blank">Ошибка на карте?</a> · </ymaps></ymaps><a target="_blank" href="http://legal.yandex.ru/maps_termsofuse/?lang=ru">Условия использования</a></ymaps></ymaps></ymaps></ymaps></ymaps><ymaps style="z-index: 600; position: absolute; left: 240px; top: 200px;" class="ymaps-overlay-stepwise-pane"><ymaps unselectable="on" style="position: absolute; height: 0px; width: 0px; -moz-user-select: none; left: 0px; top: 0px; z-index: 650;" class="ymaps-point-overlay"><ymaps><ymaps class="ymaps-image-with-content" style="position: absolute; left: -10px; top: -40px; width: 37px; height: 42px; background-position: 0px 0px; background-size: 37px 42px; background-image: url("http://api-maps.yandex.ru/2.0.39/release/../images/d667d1017f473e7812cb2c8ea22e02e0.png");"><ymaps class="ymaps-image-with-content-content" style="font: 13px Arial,sans-serif;position: absolute;text-align: center;left: 6px;top: 6px;width: 16px;height: 16px;"><ymaps id="id_142468760927036184_0"><ymaps>1</ymaps></ymaps></ymaps></ymaps></ymaps></ymaps></ymaps></ymaps></div>

</td>

</tr>

</tbody>

</table>

</div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никто и не говорил что будет сложно...все вроде расписано от и до... )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там надо точки расставить по координатам, а маршрут он вроде автоматом рассчитывает от смой ближайшей точки.

 

скрипт установок точек

ymaps.ready(init);

function init () {
    var myMap = new ymaps.Map("map", {
            center: [55.76, 37.64],
            zoom: 10
        }),

    // Создаем геообъект с типом геометрии "Точка".
        myGeoObject = new ymaps.GeoObject({
            // Описание геометрии.
            geometry: {
                type: "Point",
                coordinates: [55.8, 37.8]
            },
            // Свойства.
            properties: {
                // Контент метки.
                iconContent: 'Я тащусь',
                hintContent: 'Ну давай уже тащи'
            }
        }, {
            // Опции.
            // Иконка метки будет растягиваться под размер ее содержимого.
            preset: 'islands#blackStretchyIcon',
            // Метку можно перемещать.
            draggable: true
        });

    myMap.geoObjects
        .add(myGeoObject)
        .add(new ymaps.Placemark([55.684758, 37.738521], {
            balloonContent: 'цвет <strong>воды пляжа бонди</strong>'
        }, {
            preset: 'islands#icon',
            iconColor: '#0095b6'
        }))
        .add(new ymaps.Placemark([55.833436, 37.715175], {
            balloonContent: '<strong>серобуромалиновый</strong> цвет'
        }, {
            preset: 'islands#dotIcon',
            iconColor: '#735184'
        }))
        .add(new ymaps.Placemark([55.687086, 37.529789], {
            balloonContent: 'цвет <strong>влюбленной жабы</strong>'
        }, {
            preset: 'islands#circleIcon',
            iconColor: '#3caa3c'
        }))
        .add(new ymaps.Placemark([55.782392, 37.614924], {
            balloonContent: 'цвет <strong>детской неожиданности</strong>'
        }, {
            preset: 'islands#circleDotIcon',
            iconColor: 'yellow'
        }))
        .add(new ymaps.Placemark([55.642063, 37.656123], {
            balloonContent: 'цвет <strong>бисмарк-фуриозо</strong>'
        }, {
            preset: 'islands#icon',
            iconColor: '#a5260a'
        }))
        .add(new ymaps.Placemark([55.826479, 37.487208], {
            balloonContent: 'цвет <strong>фэйсбука</strong>'
        }, {
            preset: 'islands#dotIcon',
            iconColor: '#3b5998'
        }))
        .add(new ymaps.Placemark([55.694843, 37.435023], {
            balloonContent: 'цвет <strong>вконтакте</strong>'
        }, {
            preset: 'islands#circleIcon',
            iconColor: '#4d7198'
        }))
        .add(new ymaps.Placemark([55.790139, 37.814052], {
            balloonContent: 'цвет <strong>твиттера</strong>'
        }, {
            preset: 'islands#circleDotIcon',
            iconColor: '#1faee9'
        }));
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никто и не говорил что будет сложно...все вроде расписано от и до... )))

 

может вы сделаете?  :oops: $$

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.