BlackBerry и картографические приложения, такие как Yelp и Google Map
-
06-07-2019 - |
Вопрос
Это сообщение с вопросом от кого-то, кто только начинает разработку BB. Любое руководство высоко ценится. Р>
Как реализованы приложения BlackBerry на основе карт, такие как Yelp и Google Map? Как и в веб-версии. Визг на ББ позволяет искать рестораны & amp; и т.д. в зависимости от текущего или указанного местоположения. Результат поиска находится в форме списка или представления карты, отображающего маркеры результатов поиска. Карта Yelp работает на Bing. Как карта вместе с маркерами вызывается внутри кода BB? Для представления списка, что используется для получения списка результатов из базы данных. Можно ли использовать какую-либо базу данных?
Google Map 3.2 для BB теперь поддерживает слои. Опять же, как вызываются карты Google? Вы также можете выбрать маркер (то есть Wiki, АЗС) определенного местоположения прямо на карте и просмотреть информацию об этом месте (то есть Wiki, адрес АЗС). Как это делается? Р>
Мои знания в области картографии, а также в разработке BB очень ограничены, поэтому приветствуются как базовые, так и глубокие отзывы.
Решение
У меня нет опыта написания реальных gps-приложений для blackberry, ниже приведены только мои наблюдения и мысли о возможных обходных путях.
Приложение Blackberry Yelp
Действительно, приложение Blackberry Yelp показывает карту, если вы выполняете поиск, а затем переходите к результату и видите адрес карты
альтернативный текст http://img197.imageshack.us/img197/965/13428830 .jpg альтернативный текст http://img269.imageshack.us/img269/ 1976 / 92068364.jpg
См. также Yelp запускает Bing- Powered Blackberry App
Если вы загляните в API Yelp , вы найдете только функции поиска, которые могут < a href = "http://www.yelp.com/developers/examples" rel = "nofollow noreferrer"> дополнительно используйте Карты Google , чтобы отобразить местоположение результатов поиска на вашем веб-сайте . р>
Bing является аналогом MS для Google Maps. И есть ASP Bing Map Control , который вряд ли можно использовать в ББ разработка. Р>
Приложение Google Maps для Blackberry
альтернативный текст http://img193.imageshack.us/img193/9678/39917026 .jpg р>
Вы можете вызвать установленный Google Maps Mobile из кода
class Scr extends MainScreen {
public Scr() {
}
protected void makeMenu(Menu menu, int instance) {
super.makeMenu(menu, instance);
menu.add(mInvokeGMaps);
}
MenuItem mInvokeGMaps = new MenuItem("Run GMaps", 0, 0) {
public void run() {
GMLocation location
= new GMLocation(51.507778, -0.128056, "London");
invokeGMaps(location);
};
};
public void invokeGMaps(GMLocation l) {
int mh = CodeModuleManager.getModuleHandle("GoogleMaps");
if (mh == 0) {
try {
throw new ApplicationManagerException(
"GoogleMaps isn't installed");
} catch (ApplicationManagerException e) {
System.out.println(e.getMessage());
}
}
URLEncodedPostData uepd = new URLEncodedPostData(null, false);
uepd.append("action", "LOCN");
uepd.append("a", "@latlon:" + l.getLatitude()
+ "," + l.getLongitude());
uepd.append("title", l.getName());
uepd.append("description", l.getDescription());
String[] args = { "http://gmm/x?" + uepd.toString() };
ApplicationDescriptor ad = CodeModuleManager
.getApplicationDescriptors(mh)[0];
ApplicationDescriptor ad2 = new ApplicationDescriptor(ad, args);
try {
ApplicationManager.getApplicationManager()
.runApplication(ad2, true);
} catch (ApplicationManagerException e) {
System.out.println(e.getMessage());
}
}
}
Использование пользовательского класса местоположения:
class GMLocation {
String mName;
String mDescription;
double mLatitude;
double mLongitude;
public GMLocation(double lat, double lon) {
mLatitude = lat;
mLongitude = lon;
}
public GMLocation(double d, double e, String name) {
this(d, e);
mName = name;
}
public GMLocation(double lat, double lon, String name, String descr) {
this(lat, lon, name);
mDescription = descr;
}
public String getName() {
return mName;
}
public String getDescription() {
return mDescription;
}
public String getLongitude() {
return String.valueOf(mLongitude);
}
public String getLatitude() {
return String.valueOf(mLatitude);
}
}