Формула Jquery/JavaScript, которая добавляет x метров/миль/км к координатам широты

Я ищу формулу в jquery/javascript, которую я могу использовать для получения новых координат, если у меня есть существующие долговременные координаты. У меня есть несколько маркеров на карте Google и Я хотел бы разбросать их на равном расстоянии друг от друга.

Все маркеры, которые у меня есть, имеют одинаковые координаты широты. Я просматривал формулу Хаверсина, однако я не вижу никаких формул, которые могут дать мне новые координаты из существующей пары координат широты и долготы.


person devdar    schedule 06.05.2013    source источник


Ответы (1)


Нашел это в некоторых исследованиях

http://www.movable-type.co.uk/scripts/latlong.html

/**
 * Returns the destination point from this point having travelled the given distance (in km) on the 
 * given initial bearing (bearing may vary before destination is reached)
 *
 *   see http://williams.best.vwh.net/avform.htm#LL
 *
 * @param   {Number} brng: Initial bearing in degrees
 * @param   {Number} dist: Distance in km
 * @returns {LatLon} Destination point
 */
LatLon.prototype.destinationPoint = function(brng, dist) {
  dist = typeof(dist)=='number' ? dist : typeof(dist)=='string' && dist.trim()!='' ? +dist : NaN;
  dist = dist/this._radius;  // convert dist to angular distance in radians
  brng = brng.toRad();  // 
  var lat1 = this._lat.toRad(), lon1 = this._lon.toRad();

  var lat2 = Math.asin( Math.sin(lat1)*Math.cos(dist) + 
                        Math.cos(lat1)*Math.sin(dist)*Math.cos(brng) );
  var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(dist)*Math.cos(lat1), 
                               Math.cos(dist)-Math.sin(lat1)*Math.sin(lat2));
  lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI;  // normalise to -180..+180º

  return new LatLon(lat2.toDeg(), lon2.toDeg());
}
person devdar    schedule 06.05.2013