Google Maps Apiv3 - пропорциональное увеличение полигона
Приветствуют уважаемых разработчиков.
Есть вопрос по Google Maps Api v3. Вот тут https://jsfiddle.net/5dwqysa9/ есть возможность нарисовать полигон. Но функция расширения полигона не работает как следует - https://www.dropbox.com/s/8vyr30974o...creen.png?dl=0 То есть если мало точек, то расширяет пропорционально нормально, но если более-менее много точек, все плохо идут искажения. Подскажите пожалуйсто что не так в этой функции function extendPolygon(distance, polyline) { // define number of points var numPts = polyline.getPath().getLength(); // define bounds/borders variable var bounds = new google.maps.LatLngBounds(); // loop through number of points for (i=0; i< numPts; i++) { // extend bounds/borders // TODO: findout exactly how extending? carefult debug bounds.extend(polyline.getPath().getAt(i)); } // getting the center of polygon var center = bounds.getCenter(); // define the extended polygon points var extendedPolyPts = []; // loop through number of points for (var i=0; i< numPts; i++) { // get heading var heading = google.maps.geometry.spherical.computeHeading(center,polyline.getPath().getAt(i)); // get initialDist var initialDist = google.maps.geometry.spherical.computeDistanceBetween(center,polyline.getPath().getAt(i)); // get extendedDist var extendedDist = (initialDist + distance); // extended point var extendedPt = google.maps.geometry.spherical.computeOffset(center, extendedDist, heading); // push extended point to the expended polygon array extendedPolyPts.push(extendedPt); } // if global extendedPoly object exist destroy it // if there is input value and it's not empty if(!$.isEmptyObject(extendedPoly)) extendedPoly.setMap(null); // re-define the extendedPoly polygon on the map extendedPoly = new google.maps.Polygon({ map: map, paths:extendedPolyPts, fillColor: colors[2], strokeWidth:2, fillOpacity:0.15, strokeColor: colors[2], strokeOpacity:0.5, draggable: true, editable: true }); // copy the locs values to the tmp_locs var tmp_locs = locs; // rebuild markers on extended poly app.markers.rebuild(extendedPoly, polyline); // on drag bounds google.maps.event.addListener(extendedPoly, 'dragend', function() { // rebuild the extended poly app.markers.rebuild(extendedPoly, polyline); }); // on mouse up google.maps.event.addListener(extendedPoly, 'mouseup', function() { // rebuild the extended poly app.markers.rebuild(extendedPoly, polyline); }); } Возможна платная благодарность. Спасибо. |
Ребята, действительно нет спецов по Google Maps ? Я оплачу труд если будет результат.
|
Часовой пояс GMT +3, время: 08:39. |