BlackBerry и картографические приложения, такие как Yelp и Google Map

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

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

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

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

1 ответ

Решение

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

Blackberry Yelp Применение

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

http://img197.imageshack.us/img197/965/13428830.jpg http://img269.imageshack.us/img269/1976/92068364.jpg

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

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

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

Приложение 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);
 }
}

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

Заключение

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

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

Другие вопросы по тегам