как получить все точки LatLng между двумя конечными точками в полилинии - PullRequest
1 голос
/ 28 ноября 2011

Я работаю над настройкой GMap. Я хочу, чтобы плавающий круг перемещался по полилинии. Мой вопрос заключается в том, можем ли мы получить все точки LatLng в ломаной линии после определенного интервала, например, все значения LatLng с интервалом в 100 метров. Мой код ломаной линии:

/** polyline **/
            var tpath = [
                    new google.maps.LatLng(15.508718,73.839337),
                    new google.maps.LatLng(15.511457,73.839165)
                ];
            var travelPath = new google.maps.Polyline({
                path : tpath,
                map : map,
                geodesic : true,
                strokeColor : '#000',
                strokeOpacity : 0.7,
                strokeWeight : 1
            });

Я получаю только конечные значения LatLng. Я хочу значения через полилинию.
Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 20 марта 2012

Вы можете использовать google.maps.geometry.spherical.computeHeading (startPoint, endPoint), чтобы получить заголовок .

Затем вычислите расстояние с помощью google.maps.geometry.spherical.computeDistanceBetween (startPoint, endPoint)

Если расстояние составляет 475 м, и вы хотите сделать ~ 100 прыжков, просто сделайте 475 / раунд (475/100), чтобы вычислить расстояние , которое вы хотите перемещать по кругу каждый раз. раунд (475/100) даст вам, сколько раз ( итераций ) вы должны переместить круг.

Тогда вы можете использовать computeOffset (из: LatLng, расстояние: число, заголовок: число, радиус?: Число)

Затем вы можете использовать computeOffset (circleCenter, distance, heading), чтобы получить новую центральную точку круга в цикле for - количество итераций, вычисленное выше. Не забудьте включить задержку в ваш цикл.

0 голосов
/ 05 декабря 2017

Вы можете установить прослушиватель «По щелчку» на полилинии с помощью GoogleMap.OnPolylineClickListener, после того как он вернет полилинию, на которую вы нажали.

List<LatLng> mPoints=polyline.getPoints();

Обязательно сделайте вашу полилинию кликабельной, установив.

lineOptions.clickable (истина);

0 голосов
/ 13 декабря 2011

Я не знаю, как получить его с помощью API Google Maps, но вы можете нарисовать линию, чтобы получить точки от начала и до конца вручную.Это простая математика для рисования линии и расчета.

...