2010-03-19 3 views
0

Сценарий выглядит следующим образом:VEMap и корм GeoRSS (поддерживаемый отдельно)

  • веб-служба ФОС существует, что выводит правильный канал GeoRSS. Это живет в своем собственном домене, так как к нему доступны различные приложения.

  • Веб-страница (на другом сайте) была создана с экземпляром объекта VEMap (объект Bing/Virtual Earth map).

Теперь VEMap может принимать подачу входного сигнала в этом формате с помощью следующих действий:

var layer = new VEShapeLayer(); 
var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "someurl", layer); 

map.ImportShapeLayerData(veLayerSpec, onComplete, true); 

OnComplete является функцией обратного вызова, я использую, чтобы заменить контактную графический по умолчанию с чем-то обычаем.

Вопрос в отношении «someurl», который представляет собой путь к локальному файлу xml, содержащему географическую информацию (простой формат georss). Я понял этот канал, и карта должна быть размещена в том же домене, поэтому я создал общий обработчик, который читает удаленный канал и возвращает его в том же формате.

var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/somelocalhandler.ashx", layer); 

Когда я это делаю, я получаю ошибку VEMap ("z is null"). Это та же ошибка, которую можно получить при попытке получить доступ к удаленному каналу. Когда я копирую фид в локальный XML-файл (т. Е. «Feed.xml»), ошибки не возникает.

Порядок операций в настоящее время: дистанционное питание -> локальный обработчик -> VEMap импорт

Если я более усложняя эту процедуру, дайте мне знать! Я немного новичок в API Bing Maps и, возможно, что-то пропустил. Любая помощь приветствуется.

ответ

0

Формат, который у меня выше, на самом деле очень близок к тому, что мне нужно. Аналогичное решение было найдено by Mike McDougall. Хотя я проходил на RSS-канал непосредственно через обработчик (записи потока чтения непосредственно), мне просто нужно указать следующее из обработчика:

context.Response.ContentType = "text/xml"; 
context.Response.ContentEncoding = System.Text.Encoding.UTF8; 

С выше исправить, я «Могу иметь удаленный канал GeoRSS успешно загружать отдельно размещенный экземпляр карты виртуальной земли.