提案が選択されたときに地図を移動/ズームするには、onResults
ハンドラーを実装する必要があります。
var fromSearchBox = new nokia.places.widgets.SearchBox({
targetNode: "fromSearchBox",
template: "fromSearchBox",
map: map,
onResults: function (data) {
// Your code goes here //
}
});
お気づきのように、data
フィールドにはバウンディング ボックスがある場合とない場合があります。これは、定義されたエリアをカバーする場所が少なく、ほとんどがポイントアドレスであるためです。
境界ボックスを持つサブセットの場合、次のことができます。
if (data.results.items[0].boundingBox){
map.zoomTo(data.results.items[0].getBoundingBox());
}
残りの答えは、達成しようとしているものによって異なりますが、次のいずれかを試すことができます。
ズームを変更せずにマップ上の場所に移動します。(つまり、ユーザーに決定させます)
map.set("center", data.results.items[0].position);
指定された位置にあるポイント オブジェクトの指定されたバウンディング ボックスに移動します。
var obj = new nokia.maps.map.StandardMarker(startPoint);
map.zoomTo(obj.getBoundingBox());
または、次のようにします。map.zoomTo(nokia.maps.geo.BoundingBox.coverAll([startPoint]));
ポイントの位置を囲む境界ボックスを定義し、代わりにそれにズームします
startPoint =data.results.items[0].position;
bottomLeft = new nokia.maps.geo.Coordinate(startPoint.latitude - 0.1,
startPoint.longitude + 0.1);
topRight = new nokia.maps.geo.Coordinate(startPoint.latitude + 0.1,
startPoint.longitude - 0.1);
map.zoomTo(nokia.maps.geo.BoundingBox.coverAll([topRight, bottomLeft]));
さらに、Display.zoomTo()は追加のパラメーターを受け取ることもできるため、これを使用 map.zoomTo(BoundingBox, true)
すると、画面上のマップの現在の中心も維持され、ユーザーにより多くのコンテキストが提供される場合があります。