Minun pitäisi piirtää pätkä ympyrän kaarta käyttäen Google Map API:a.
Tiedossa on ympyrän keskipiste, säde sekä kaaren alku- ja loppupisteet.
Esimerkki syötteet voisivat olla:
Keskipiste: 602016N 0245713E ~ 60.3378 24.9536
Alkupiste: 604342N 0243954E ~ 60.7283 24.6650
Loppupiste: 602249N 0240709E ~ 60.3803 24.1192
Säde: 25NM = 46.3km
Täältä löytyi ympyrän piirtävä funktio: http://koti.mbnet.fi/ojalesa/googlepages/circle.
function drawCircle(center, radius, nodes, liColor, liWidth, liOpa, fillColor, fillOpa){ // Esa 2006 //calculating km/degree var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100; var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100; //Loop var points = []; var step = parseInt(360/nodes)||10; for(var i=0; i<=360; i+=step) { var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + (radius/lngConv * Math.sin(i * Math.PI/180))); points.push(pint); bounds.extend(pint); //this is for fit function } points.push(points[0]); // Closes the circle, thanks Martin fillColor = fillColor||liColor||"#0055ff"; liWidth = liWidth||2; var poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa); map.addOverlay(poly); }
Pystyisikö tuosta helposti johtamaan funktion joka piirtäisi kaaren?
Ainakin for-loopin vertailuarvon pudottamisella voit lyhentää funktion piirtämää kaarta, mutta sen suunnan muuttamisesta en osaa sanoa tuon koodin perusteella.
Jep, tosiaan osa kaarista pitäisi piirtää myötä- osa vastapäivään ja se tieto on myös saatavilla.
Pitäsi ilmeisesti jotenkin laskea mistä asteesta tuo piisto aloitetaan ja mihin se lopetetaan...
Aihe on jo aika vanha, joten et voi enää vastata siihen.