2

MQA.TileMap.zoomToRect特定の境界ボックスのビューポートを設定するために使用しようとしています。

var cust;
var rect = new MQA.RectLL();
for (var i = 0, len = custs.length; i < len; i++) {
    cust = custs[i];
    poi = new MQA.Poi({lat:cust.lat, lng:cust.lng});
    map.addShape(poi); // This works
    rect.extend(poi.latLng); // Does nothing to `rect'.
}
map.zoomToRect(rect, false); // This fails

とプロパティの両方のrect値がそのままのようです。呼び出しの結果、firebog に次の出力が表示されます0,0lrul

"NetworkError: 500 Internal Server Error - http://coverage.mqcdn.com/coverage?format=json&jsonp=MQA._covCallback&loc=NaN,NaN,NaN,NaN&zoom=2&projection=sm&cat=map%2Chyb%2Csat"

編集:形状の追加が正常に機能する例にメモを追加したため、poi オブジェクトは問題なく、検査も問題ありませんpoi.latLng

4

2 に答える 2

1

POI をコレクションに入れる場合は、 collectionsgetBoundingRectメソッドを使用できます。

例:

var collection = new MQA.ShapeCollection();
collection.add( new MQA.Poi( { lat: 0, lng: 0 } ) ); 
collection.add( new MQA.Poi( { lat: 100, lng: 100 } ) );

map.zoomToRect( collection.getBoundingRect() );

EDIT なしでは機能しません

<script
src="http://www.mapquestapi.com/sdk/js/v7.2.s/mqa.toolkit.js?key=<YOURKEY>"></script>
于 2014-10-09T19:27:00.333 に答える
-1

一目でわかるように、「for」ループで緯度/経度の値を取得していますか? firebug に表示される 500 エラーには「..&loc=NaN,NaN,NaN,NaN&...」が含まれているため、配列から緯度/経度の値を正常に取得できず、代わりにオブジェクトを取得しているように見えます。

より多くのコードを共有できる場合は、例をまとめることができます。または、「custs」配列がどのように構造化されているかを示してください。おそらく次のようなことをする必要があります:

poi = new MQA.Poi({lat:custs.cust[i].lat, lng:custs.cust[i].lng});

しかし、繰り返しますが、配列がどのように見えるかによって異なります。配列内の個々の項目すべてをループして、配列内の各項目から緯度/経度の値を取得していることを確認する必要があります。

また、MapQuestには開発者ネットワーク(API を使用している場合は見たことがあるはずです!) があり、コード サンプルを投稿して助けを求めることができるフォーラムがあります。MapQuest の従業員はフォーラムに参加しており、問題が発生した場合にも役立つ可能性があります。

お役に立てれば!

于 2012-01-11T17:11:57.903 に答える