Ответы пользователя по тегу Google Maps
  • Как поставить метки в google map из массива БД?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Вы получаете данные из БД и вставляете их в API google maps.
    Что же вы все ленитесь почитать документацию к тому с чем собираетесь работать.
    https://developers.google.com/maps/documentation/j...

    Самый простой способ, иметь массив с координатами
    // Multiple Markers
        var markers = [
            ['London Eye, London', 51.503454,-0.119562],
            ['Palace of Westminster, London', 51.499633,-0.124755]
        ];


    и дальше в цикле при инициализации все это дело вставлять
    for( i = 0; i < markers.length; i++ ) {
    // ...
            var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
            marker = new google.maps.Marker({
                position: position,
                map: map,
                title: markers[i][0]
            });
    // ...


    В гугле сотни примеров.

    P.S.
    Вот вы устроились работать поваром.
    Вам приходит заказ на картофель фри. Вы берете грязный целый картофель и подаете. И вам кажется что это нормально. Но ведь сначала надо прочитать что делать с картофелем, затем прочитать как его нарезать и как готовить.
    Ответ написан
  • Есть ли у API Яндекс, Google или других карт БЕСПЛАТНАЯ возможность НЕОГРАНИЧЕННО рассчитывать расстояние между точками?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Возможно есть у OSM.

    Я писал свой алгоритм расчета маршрутов для карт google.
    Т.е. на карту можно поставить сколько хочешь точек и по ним будет прорисован маршрут.
    Данное решение оказалось на 8% точнее нежели предлагает google (пути и время короче на 8%, т.к. учитываются особенности местности и др. факторы).
    Ответ написан
    8 комментариев
  • Как найти ближайший маркер к моему геолокационному месту в Google Maps?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Вам надо в цикле от стартовых координат прогнать все остальные.
    Найти ближайшую.
    Это задача из разряда - Коммивояжёр

    Условие:
    Известна начальная точка маршрута А1 (x1,y1) и количество точек маршрута N.

    Решение:
    1. Определить расстояния Ri между начальной точной и каждой из точек маршрута по формуле:
    SQRT - Квадратный корень.
    Ri = SQRT((xi-x1)**2+(yi-y1)**2), i=2…N
    2. Точка, для которой расстояние Ri минимально, является следующей точкой маршрута

    Собственно был подобный вопрос
    Google maps — как построить логичный, короткий маршрут?
    Ответ написан
  • Google maps - как построить логичный, короткий маршрут?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Вам требуется вычислить самую дальнюю точку от стартовой.
    Эта дальняя точка будет конечной, остальные точки построятся автоматически.
    Формула:
    Ri= SQRT((xi-x1)**2+(yi-y1)**2)

    Пример изходя из прошлого вопроса:
    var waypoints = [
          "40.7513888888889,-73.9777777777778",
          "40.7083333333333,-74.0141666666667",
          "40.7752777777778,-73.9769444444444",
          "40.7252222222222,-73.9993888888889",
          "40.7652777777778,-73.9791666666667"
        ];
    var andrLT = []; 
    var andrLN = []; 
    var Ri;
    for (i = 0; i < waypoints.length; i++) {
          andrLT.push(parseFloat(waypoints[i].split(',')[0]));
          andrLN.push(parseFloat(waypoints[i].split(',')[1]));
    }
    
    for (i = 0; i < waypoints.length; i++) {
          sqrt = Math.sqrt(((40.7791666666667 - andrLT[i])*2 + (73.9583333333333 - andrLT[i])*2)+300);
          Ri.push([ sqrt ]);
    }
    
    // Узнаем максимальное значение массива точек
    console.log(Math.max.apply(Math, Ri));


    Вы получили дальнюю точку, далее условиями получите координаты и уже реализуете механизм.
    Ответ написан
    Комментировать
  • Маршрут по нескольким точкам на картах (google, osm)?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    function initialize() {
          directionsDisplay = new google.maps.DirectionsRenderer();
          var center = new google.maps.LatLng(40.7791666666667,-73.9583333333333);
          var mapOptions = {
            zoom: 13,
            center: center
          }
          map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
          directionsDisplay.setMap(map);
    
          var start = "40.7791666666667,-73.9583333333333";
          var end = "40.7752777777778,-73.9769444444444";
          var waypoints = [
            "40.7513888888889,-73.9777777777778",
            "40.7155555555556,-74.0111111111111",
          ];
    
          getRoute(start, end, waypoints);
        }
    Ответ написан
    Комментировать