Использование Wikimapia.org Api - PullRequest
1 голос
/ 30 ноября 2011

Я пытаюсь использовать API wikimapia для поиска мест в определенных городах или местах с учетом их долготы и продолжительности.Некоторой документации немного, но я полагаю, что это просто запрос http.Теперь у меня проблема с конкретным ulr.Я попробовал это:

http://api.wikimapia.org/?function=search
&key= myKey
&q=lat= theLatidute
&lon= theLongitude
&format=json

, но это не похоже на работу.Любая помощь будет оценена ..

1 Ответ

4 голосов
/ 30 ноября 2011

API поиска требует, чтобы вы указали место поиска (long и lat), а также имя чего-либо для поиска этого местоположения.

Например, чтобы найти железнодорожную станцию ​​рядом с определенной координатой:

http://api.wikimapia.org/?function=search&key=[key]&q=Train+Station&lat=[latitude]&lon=[longitude]&format=json

Если вы просто пытаетесь найти список объектов, близких к координате, без поискового запроса, вам нужно использовать box API с небольшими смещениями:

 http://api.wikimapia.org/?function=box&key=[key]&lon_min=[lon_min]&lat_min=[lat_min]&lon_max=[lon_max]&lat_max=[lat_max]&format=json

Если вы хотите ввести только один набор координат, вы можете вычислить lon_min, lon_max, lat_min и lat_max следующим образом:

// 1 degree latitude is roughly 111km, 0.001 degrees lat is about 100m
var lat_min = latitude - 0.001;
var lat_max = latitude + 0.001;

// 1 degree longitude is not a static value
// it varies in terms of physical distance based on the current latitude
// to compute it in meters, we do cos(latitude) * 111000
var meters_per_longdeg = Math.cos((3.141592 / 180) * latitude) * 111000;

// then we can work out how much longitude constitutes a change of ~100m
var range = 100 / meters_per_longdeg;

var long_min = longitude - range;
var long_max = longitude + range;
...