Я немного занимаюсь геокодированием с помощью локального поиска Google, и мне нужно установить область просмотра объекта API v3 карт Google на странице.
Теперь это нормально, если локальный поиск Google вернул мне хорошее окно просмотра, как для почтового индекса или улицы, но если я, например, введу название бара. Предположительно возвращенная область просмотра очень велика, потому что локальный поиск нашел много совпадений, но выдал лучшее.
В этом случае я хотел бы рассчитать свой собственный видовой экран и делаю это следующим образом:
result.Centre = new LatLon(double.Parse(lat),double.Parse(lon));
result.Span = new LatLon(0.006295d, 0.008407d);
string viewport = "{{\"center\":{{\"lat\":\"{0}\",\"lng\":\"{1}\"}},\"span\":{{\"lat\":\"{2}\",\"lng\":\"{3}\"}},\"sw\":{{\"lat\":\"{4}\",\"lng\":\"{5}\"}},\"ne\":{{\"lat\":\"{6}\",\"lng\":\"{7}\"}}}}";
//Calculate the south west by taking half the span and adding it to the centre
double swLat = result.Centre.Latitude + (result.Span.Latitude/2);
double swLon = result.Centre.Longitude + (result.Span.Longitude/2);
//and northeast corners by taking half the span and subtracting from the centre
double neLat = result.Centre.Latitude - (result.Span.Latitude/2);
double neLon = result.Centre.Longitude - (result.Span.Longitude/2);
//Fingers crossed :)
result.ViewPortJSON = string.Format(viewport, result.Centre.Latitude, result.Centre.Longitude,result.Span.Latitude, result.Span.Longitude, swLat, swLon,neLat, neLon);
Проблема в том, что я получаю действительный json, но карты Google уменьшают масштаб, поэтому я могу видеть весь мир. Тот же код используется во внешнем интерфейсе, как если бы Google предоставил мне область просмотра, поэтому я не понимаю, что происходит.
Есть идеи? Я ошибся в своих расчетах? Я пробовал со всем пролетом (т.е. предполагая, что это уже радиус) с тем же эффектом.
Заранее спасибо.