Разрыв полилинии и полигона Google Map Api v3 - PullRequest
0 голосов
/ 23 августа 2011

Я разработал простое приложение google map с их API в версии 3. Поскольку на моем компьютере все работало нормально, я отправил его своему коллеге, который сообщил, что на его компьютере ломаная линия ломается и случайным образом сдвигает свою часть (как показано здесь ).То же самое происходит с регионами, которые также выделяют часть своего заполнения вместе с контуром.

Код для ломаной линии довольно прост:

var opts = eval(json);
var options = {
    strokeColor: opts.color,
    strokeOpacity: opts.opacity,
    strokeWeight: opts.weight,
    geodesic: true
}; 
var line = new google.maps.Polyline(options);

line.setPath(google.maps.geometry.encoding.decodePath(opts.points));
line.setMap(map);

, и я не могу понять, в чем причина этого.Это похоже на ошибку в рендеринге карты Google.Это происходит для него каждый раз и в противоречивых областях.Коллега использует IE 9, а я (и другой коллега, который также не сталкивается с этой ошибкой) IE 8.

Поэтому я спрашиваю, сталкивался ли кто-либо с подобной проблемой или имеет какое-либо представление о том, что может бытьвызывая его.

РЕДАКТИРОВАТЬ: Я обновил свой IE до версии 9 и все еще работает нормально на моем ПК, поэтому это не проблема версии IE.

РЕДАКТИРОВАТЬ 2: Это вызвано ненормальнымточек на дюйм по системе коллеги.Более высокие значения dpi приводят к неправильной визуализации карт Google.Мое исследование в Google не дало никаких полезных решений (кроме тривиального «измени свой dpi»).Если у кого-то есть идеи, как это исправить, я буду очень признателен.

Заранее спасибо за любые идеи.

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Как и в рассматриваемом EDIT2, этот сбой вызван нестандартной настройкой dpi. Официальная позиция Google заключается в том, чтобы изменить стандартное dpi системы, поэтому, вероятно, пока нет жизнеспособного решения. Надеюсь, что со временем это изменится.

0 голосов
/ 23 августа 2011

Может быть, строка json представляет собой строковый объект, такой как json = "{...}"? В этом случае заключите его в круглые паратезы:

var opts = eval("(" + json + ")");

eval() вычисляет выражений , а выражение не может начинаться с фигурной скобки.

РЕДАКТИРОВАТЬ: еще лучше было бы

var opts = JSON.parse(json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...