вопрос касательно Google Maps API - PullRequest
0 голосов
/ 17 июля 2009

если я загружаю данные для маркеров из базы данных, я записываю вывод, запрошенный из БД, в файл javascript или есть более чистый способ сделать это?

спасибо

Ответы [ 4 ]

1 голос
/ 17 июля 2009

Да, запись в файл - это хороший способ сделать это. Просто напишите данные в формате JSON. Ваш файл будет выглядеть так:

var map = {waypoints:[...]};

И тогда вы можете сделать:

for(var i=o; i<map.waypoints.length; ++i) {
  addWaypoint(map.waypoints[i]);
}

Я на самом деле выполняю статическое кэширование узлов, используя этот метод: http://www.trailbehind.com/site_media/javascript/gen/national-parks.js

Мы часто используем этот набор национальных парков, поэтому мы его кешируем. Но у нас также есть URL-адреса, по которым вы можете получить JSON для узла на лету, например: http://www.trailbehind.com/map/node/7538973/632/735/

Этот URL-адрес получает карту для узла 7538973, а также указывает размеры их карты в пикселях.

0 голосов
/ 17 июля 2009

В зависимости от размера вашего приложения, вы можете распечатать простой javascript.

У меня есть карта, которая использует кластеризацию на стороне сервера, поэтому маркеры часто обновляются. Я обнаружил, что анализ маркеров JSON значительно замедляет работу приложения и просто не нужен.

Если скорость - проблема, я бы предложил удалить все ненужные слои (JSON, AJAX и т. Д.). Если это не так, вам будет хорошо с JSON, который чище.

0 голосов
/ 17 июля 2009

Я согласен с ответом Андрея (+1).

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

var request = new Request.JSON (url: 'get_some_json.php',
                           onSuccess: function(data) {
                               // do stuff with the data
                           }).get ();

(Это Mootools AJAX, но вы можете использовать любой объект AJAX-запроса).

Редактировать : ChrisB дает хорошее представление о производительности анализа ответов JSON и перечитывания моего ответа, который я, конечно, не прояснил. Я думаю, что запросы AJAX подходят для повторного запроса данных на основе параметров, сгенерированных в результате взаимодействия с пользователем. Я предполагаю, что пример использования может быть, пользователь фильтрует данные, отображаемые на карте. Вы можете получить отфильтрованные данные с помощью запроса AJAX / SJON, а не перезагружать страницу.

0 голосов
/ 17 июля 2009

Необходимый Javascript, конечно, может быть упакован на любом языке, который вы предпочитаете использовать, см., Например. pymaps для примера Python. В то время как pymaps фактически вставляет код JS в шаблон HTML, если вы пишете веб-приложение, вы можете совершенно точно выбрать этот код JS на лету по соответствующему URL-адресу и использовать этот URL-адрес в теге <script> в вашем страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...