2013-10-24 2 views
1

Я обновил до последней версии gmaps4rails (v2), и у меня возникли проблемы с получением полилиний.Как добавить Polylines в gmaps4rails v2

Я могу получить маркеры, работающие с образцом кода в вики, но если я изменил addMarkers на addPolylines, на карте ничего не отобразится. Вот код обработчика:

handler = Gmaps.build('Google'); 
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){ 
polylines = handler.addPolylines([{"lat":45.678295,"lng":-121.603813,"ele":438.626221,"time":1381851321},{"lat":45.678196,"lng":-121.603607,"ele":423.202148,"time":1381851363},{"lat":45.678181,"lng":-121.603607,"ele":421.108398,"time":1381851373},{"lat":45.678162,"lng":-121.603584,"ele":420.153442,"time":1381851383},{"lat":45.678123,"lng":-121.603569,"ele":422.561096,"time":1381851393},{"lat":45.678165,"lng":-121.6036,"ele":425.191284,"time":1381851403},{"lat":45.678169,"lng":-121.603607,"ele":425.262329,"time":1381851413}]); 
handler.bounds.extendWith(polylines); 
handler.fitMapToBounds(); 
}); 

Ошибок в javascript-консоли, просто нет отображения карты. Есть предположения?

ответ

3

Есть несколько вещей:

  • первая ошибка в мой 2.0.0, я модернизировал 2.0.3

  • тогда проблема в вашей интерпретации: ломаная линия представляет собой массив lat/lng, поэтому ваш код не работает.

  • google не предоставляет никакого способа get the bounds of a polyline, поэтому его трудно настроить карту автоматически.

Тем не менее, вы можете сделать:

polyline = [{"lat":45.678295,"lng":-121.603813,"ele":438.626221,"time":1381851321},{"lat":45.678196,"lng":-121.603607,"ele":423.202148,"time":1381851363},{"lat":45.678181,"lng":-121.603607,"ele":421.108398,"time":1381851373},{"lat":45.678162,"lng":-121.603584,"ele":420.153442,"time":1381851383},{"lat":45.678123,"lng":-121.603569,"ele":422.561096,"time":1381851393},{"lat":45.678165,"lng":-121.6036,"ele":425.191284,"time":1381851403},{"lat":45.678169,"lng":-121.603607,"ele":425.262329,"time":1381851413}] 

handler.addPolyline(polyline); // and not addPolylines 
handler.bounds.extend(polyline[0]); 
handler.bounds.extend(polyline[ polyline.length - 1]); 
handler.fitMapToBounds(); 

Вы будете в конечном итоге с: enter image description here

+0

Спасибо! Теперь он работает. Цените очень быстрый ответ! – LaraF

Смежные вопросы