У меня есть приложение, которое случайным образом генерирует позиции в GoogleMaps на основе определенной границы. Поэтому я сначала генерирую случайную широту, а затем проверяю, находится ли эта точка внутри моей границы. Если да, то это действительно так.
Builder builder = new LatLngBounds.Builder();
double antartica[] = {-62.5670958528642, -59.92767333984375, -62.584805850293485, -59.98260498046875, -62.61450963659083};
for (int i = 0; i < antartica.length; i++) {
builder.include(new LatLng(antartica,antartica[++i]));
}
pAntarctica = builder.build();
LatLng point = generateRandomPosition();
if(isWithinBoundaries(point))
return point;
else
return getValidPoint();
Итак, после этого я получаю верную точку зрения. Моя проблема в том, что действительная точка на Картах Google не обязательно действительна в StreetView.
Может случиться так, что эта случайная точка находится где-то на земном шаре, еще не нанесенная на карту в StreetView. Мне также нужно, чтобы оно было действительным.
Я знаю, что вы можете сделать это с помощью JavaScript API v3, перейдя по этой ссылке.
Вы можете сделать что-то вроде этого:
var latLng = new google.maps.LatLng(12.121221, 78.121212);
streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.OK) {
//ok
} else {
//no ok
}
});
Но я надеюсь сделать это только с помощью Android. Кстати, я использую API Сервисов Google Play, а не Google Maps v2 Android.
Может ли кто-нибудь пролить свет?
РЕДАКТИРОВАТЬ:
Следуя предложению Ратаны, у меня есть вот что:
svpView.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(final StreetViewPanorama panorama) {
for(final LatLng point : points) {
System.out.println(point.latitude + " " + point.longitude);
panorama.setPosition(point, 1000);
final CountDownLatch latch = new CountDownLatch(1);
mHandlerMaps.post(new Runnable() {
@Override
public void run() {
if (panorama.getLocation() != null) {
System.out.println("not null " + panorama.getLocation().position);
writeToFile(panorama.getLocation().position.toString());
l.add(point);
}
latch.countDown();
}
});
try {
latch.await(4, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(l.toString());
}
});
Подробнее здесь: https://stackoverflow.com/questions/172 ... in-android
Как проверить, действительна ли позиция в просмотре улиц на Android ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1761206908
Anonymous
У меня есть приложение, которое случайным образом генерирует позиции в GoogleMaps на основе определенной границы. Поэтому я сначала генерирую случайную широту, а затем проверяю, находится ли эта точка внутри моей границы. Если да, то это действительно так.
Builder builder = new LatLngBounds.Builder();
double antartica[] = {-62.5670958528642, -59.92767333984375, -62.584805850293485, -59.98260498046875, -62.61450963659083};
for (int i = 0; i < antartica.length; i++) {
builder.include(new LatLng(antartica[i],antartica[++i]));
}
pAntarctica = builder.build();
LatLng point = generateRandomPosition();
if(isWithinBoundaries(point))
return point;
else
return getValidPoint();
Итак, после этого я получаю верную точку зрения. Моя проблема в том, что действительная точка на Картах Google не обязательно действительна в StreetView.
Может случиться так, что эта случайная точка находится где-то на земном шаре, еще не нанесенная на карту в StreetView. Мне также нужно, чтобы оно было действительным.
Я знаю, что вы можете сделать это с помощью JavaScript API v3, перейдя по этой ссылке.
Вы можете сделать что-то вроде этого:
var latLng = new google.maps.LatLng(12.121221, 78.121212);
streetViewService.getPanoramaByLocation(latLng, STREETVIEW_MAX_DISTANCE, function (streetViewPanoramaData, status) {
if (status === google.maps.StreetViewStatus.OK) {
//ok
} else {
//no ok
}
});
Но я надеюсь сделать это только с помощью Android. Кстати, я использую API Сервисов Google Play, а [b]не[/b] Google Maps v2 Android.
Может ли кто-нибудь пролить свет?
[b]РЕДАКТИРОВАТЬ:[/b]
Следуя предложению Ратаны, у меня есть вот что:
svpView.getStreetViewPanoramaAsync(new OnStreetViewPanoramaReadyCallback() {
@Override
public void onStreetViewPanoramaReady(final StreetViewPanorama panorama) {
for(final LatLng point : points) {
System.out.println(point.latitude + " " + point.longitude);
panorama.setPosition(point, 1000);
final CountDownLatch latch = new CountDownLatch(1);
mHandlerMaps.post(new Runnable() {
@Override
public void run() {
if (panorama.getLocation() != null) {
System.out.println("not null " + panorama.getLocation().position);
writeToFile(panorama.getLocation().position.toString());
l.add(point);
}
latch.countDown();
}
});
try {
latch.await(4, TimeUnit.SECONDS);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(l.toString());
}
});
Подробнее здесь: [url]https://stackoverflow.com/questions/17218672/how-to-check-if-position-if-valid-in-streetview-in-android[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия