Получение прямоугольника четырех точек заданной одной широты и одной долготы - PullRequest
1 голос
/ 16 апреля 2011

Я читаю это: http://www.panoramio.com/api/widget/api.html#photo-widget для создания виджета фото JavaScript.

В таблице Request -> request object написано:

name:rect

пример значения: {'sw': {'lat': -30, 'lng': 10.5}, 'ne': {'lat': 50.5, 'lng': 30}}

означает: This option is only valid for requests where you do not use the ids option. It indicates that only photos that are in a certain area are to be shown. The area is given as a latitude-longitude rectangle, with sw at the south-west corner and ne at the north-east corner. Each corner has a lat field for the latitude, in degrees, and a lng field for the longitude, in degrees. Northern latitudes and eastern longitudes are positive, and southern latitudes and western longitudes are negative. Note that the south-west corner may be more "eastern" than the north-east corner if the selected rectangle crosses the 180° meridian

Но обычно нам дают только одну точку широты и одну точку долготы.

Какие выражения я должен написать, чтобы построить четыре точки, как указано выше, чтобы покрыть картины вокруг области, учитывая две точки, которые у меня есть в руке?

Например, у меня в Париже:

lat: 48.8566667

lng: 2.3509871

Я хочу покрыть изображения вокруг него 10-километровым прямоугольником.

Спасибо.

Ответы [ 2 ]

1 голос
/ 06 марта 2013

Если вы хотите использовать REST api:

var Lattitude = "48.8566667";var Longitude = "2.3509871";

угол поворота = км * 0,0089833458;

        testo.Text = "<script src=\"http://www.panoramio.com/map/get_panoramas.php?order=popularity&set=full&from=0&to=14&minx=" + clon - angle + "&miny=" + clat - angle + "&maxx=" + clon + angle + "&maxy=" + clat + angle + "&callback=mostrareFotos&size=medium\" type=\"text/javascript\"></script>";
1 голос
/ 19 августа 2011

Вот ответ, который я получил от Panoramio Forum от QuentinUK.

Невозможно пройти 10 км, потому что это подразумевает круговую область. Это можно сделать только прямоугольным.

Таким образом, вы можете также приблизиться (лучше всего использовать формулы Винсенти) и вычислить угол +/- вокруг точки.

function requestAroundLatLong(lat,lng,km){
   // angle per km = 360 / (2 * pi * 6378) = 0.0089833458
   var angle=km* 0.0089833458;
   var myRequest = new panoramio.PhotoRequest({
      'rect': {'sw': {'lat': lat-angle, 'lng': lng-angle}, 'ne': {'lat': lat+angle, 'lng': lng+angle}}
      });
   return myRequest;
   }

var widget = new panoramio.PhotoWidget('wapiblock', requestAroundLatLong(48.8566667, 2.3509871,10), myOptions); 
...