BlackBerry и картографические приложения, такие как Yelp и Google Map - PullRequest
4 голосов
/ 23 октября 2009

Это сообщение с вопросом от кого-то, кто только начинает разработку BB. Любое руководство высоко ценится.

Как реализованы приложения BlackBerry на основе карт, такие как Yelp и Google Map? Как и в веб-версии. Визг на ББ позволяет вам искать рестораны и т. Д. В зависимости от текущего или указанного местоположения. Результат поиска находится в форме списка или представления карты, отображающего маркеры результатов поиска. Карта Yelp работает на Bing. Как карта вместе с маркерами вызывается внутри кода BB? Для представления списка, что используется для получения списка результатов из базы данных. Можно ли использовать какую-либо базу данных?

Google Map 3.2 для BB теперь поддерживает слои. Опять же, как вызываются карты Google? Вы также можете выбрать маркер (то есть Wiki, АЗС) определенного местоположения прямо на карте и просмотреть информацию об этом месте (то есть Wiki, адрес АЗС). Как это делается?

Мои знания в области картографии, а также в разработке BB очень ограничены, поэтому приветствуются как базовая, так и глубокая обратная связь.

1 Ответ

8 голосов
/ 25 октября 2009

У меня нет опыта написания реальных gps-приложений для blackberry, ниже приведены лишь мои наблюдения и мысли о возможных обходных путях.

Blackberry Yelp Application

Действительно, приложение Blackberry Yelp показывает карту, если вы выполняете поиск, а затем переходите к результату и видите Map Adress

альтернативный текст http://img197.imageshack.us/img197/965/13428830.jpg альтернативный текст http://img269.imageshack.us/img269/1976/92068364.jpg

См. Также Yelp запускает приложение Blackberry на платформе Bing

Если вы загляните в Yelp API , вы найдете только функции поиска, которые могут дополнительно использовать Карты Google для отображения местоположения результатов поиска на вашем сайте .

Bing является аналогом MS для Google Maps. И есть ASP Bing Map Control , который вряд ли можно использовать при разработке BB.

Blackberry Приложение Google Maps

альтернативный текст 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);
 }
}

См. Также Как использовать Google Map в приложении Blackberry?

Заключение

Браузер Blackberry и BrowserField имеет ограниченную поддержку JavaScript. Поскольку и Bing, и GMaps основаны на JavaScript, я подозреваю, что они используют статические изображения, полученные с сервера, для отображения элемента управления картой. Это возможно, но это означает реализацию на стороне сервера и все необходимые ключи разработчика API.

В качестве альтернативы вы можете вызывать установленные GMaps из кода на Blackberry.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...