Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Google Map API: kuinka piirtää kaari?

amuse [05.09.2009 14:40:45]

#

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.htm

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?

Hakoulinen [05.09.2009 15:20:25]

#

Ainakin for-loopin vertailuarvon pudottamisella voit lyhentää funktion piirtämää kaarta, mutta sen suunnan muuttamisesta en osaa sanoa tuon koodin perusteella.

amuse [05.09.2009 17:14:59]

#

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...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta