Как правильно увеличить масштаб в MapQuest? - PullRequest
2 голосов
/ 11 января 2012

Я пытаюсь использовать 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 остаются как 0,0 для свойств lr и ul. Вызов приводит к следующему выводу в firebog

"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 в порядке.

Ответы [ 2 ]

1 голос
/ 09 октября 2014

Если вы поместите POI в коллекцию, вы можете использовать метод getBoundingRect .

Пример:

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() );

РЕДАКТИРОВАТЬ Не будет работать без

<script
src="http://www.mapquestapi.com/sdk/js/v7.2.s/mqa.toolkit.js?key=<YOURKEY>"></script>
0 голосов
/ 11 января 2012

на основании быстрого взгляда, вы уверены, что получаете значения lat / long в цикле "for"?Ошибка 500, отображаемая в firebug, имеет «.. & loc = NaN, NaN, NaN, NaN & ...», поэтому похоже, что вы не получаете значения lat / long из массива и вместо этого извлекаете объекты.

Если вы можете поделиться больше кода, я могу попытаться собрать пример.Или даже покажите мне, как выглядит ваш массив custs с точки зрения его структуры.Вам, вероятно, нужно будет сделать что-то вроде этого:

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

Но опять же, это зависит от того, как выглядит ваш массив.Вам просто нужно убедиться, что вы просматриваете все отдельные элементы в массиве и извлекаете значения lat / long из каждого элемента в массиве.

Кроме того, MapQuest имеет Developer Network (который, я уверен, вы видели, если используете API!), И существует форум , где вы можете опубликовать примеры кода и попросить помощи.Сотрудники MapQuest участвуют в форуме и, возможно, также могут помочь, если у вас возникнут проблемы.

Надеюсь, это поможет!

...