もうひとこと: コードについて
FindNearby Apex クラスのクエリ
次のスニペットは、Visualforce ページから渡される変数を使用して、ページにアクセスしているデバイスから 20 マイル以内にある倉庫を検索する動的な SOQL クエリです。このページは、すべてのモバイルデバイスと、HTML5 対応のデスクトップブラウザで機能します。
ページで場所を取得できないときは、サンフランシスコを中心に検索が行われます。この機能をブラウザでテストする場合、デバイスのセキュリティ設定によっては、ページが場所にアクセスすることを承認する必要のあることがあります。
Visualforce ページの initialize 関数
Visualforce ページの initialize 関数では、HTML5 地理位置情報 API を使用して、ユーザの座標を取得します。ブラウザがプラグインや外部ライブラリを使用せずに位置を取得し、続いて、JavaScript Remoting を使用して Apex コントローラの getNearby 関数を呼び出し、座標を渡します。
Visualforce ページのリダイレクトコード
FindNearbyWarehousesPage ページでは、Google Maps の JavaScript API v3 を使用して、付近の倉庫の位置を地図上に示します。SOQL クエリによって返されたレコードに基づいて地図が拡大縮小され、地図上に各レコードのマーカーが表示されます。
このコードの最も重要な部分は、このページが Salesforce アプリケーションで表示されているかどうかを判断している部分です。表示されている場合は、倉庫レコードへのリダイレクトリンクのコードが若干異なります。このページが Salesforce アプリケーションで実行される場合は、navigateToSobjectRecord メソッドを使用して、アプリケーションを実行したままレコード詳細ページにアクセスする必要があります。この点は簡単な try/catch コンストラクトでチェックして、その結果に応じてリダイレクトリンクを設定できます。