0

ジオコーダーgemの.nearbyメソッドを使用して、DBにクエリを実行し、近くのロケーションオブジェクトを返します。

質問1:マップを初めてロードするとき、マーカーはJSに渡されず、マップはロードされません。マーカーをロードせずにこの問題を修正するにはどうすればよいですか?

<script type="text/javascript">
Gmaps.map = new Gmaps4RailsGoogle();
Gmaps.load_map = function() {
Gmaps.map.map_options.detect_location = true;
Gmaps.map.map_options.center_on_user = true;
Gmaps.map.initialize();
Gmaps.map.markers = ; // BLOWS UP HERE
Gmaps.map.markers_conf.list_container = "markers_list";
Gmaps.map.create_markers();
Gmaps.map.adjustMapToBounds();
Gmaps.map.callback();
};
Gmaps.oldOnload = window.onload;
 window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
</script>`

質問2:ユーザーが検索し、近くの結果が検索に利用できない場合、ランダムな場所を表示するだけでこれから回復する方法(現在は海の真ん中にロードされます)。

質問3:ユーザーが検索し、近くの結果が利用できない場合、ブラウザのジオロケーションを使用して現在の場所に近い場所を表示できますか(すべてのブラウザでサポートされているわけではありません)。

4

1 に答える 1

1

回答1:

宝石にバグはありません。

あなたのこの行はjavascriptを泣かせます:

@json = nil

確かnilに有効なjsonではありません。

やったほうがいい:

@json = [].to_json

回答2

クエリが何も返さない場合は、別のクエリを作成してランダムオブジェクトを取得します。そこには何の問題も見られません。

回答3

ブラウザからのジオロケーションはgemに含まれており、成功した場合のコールバックもあります。コードを参照してください。ただし、独自のロジックに適合する独自のJavaScriptを作成する必要があります。

于 2012-11-17T14:23:25.757 に答える