Сценарий таков:
Существует веб-служба WCF, которая выводит действительный фид GeoRSS. Он находится в своем собственном домене, так как к нему имеют доступ различные приложения.
Создана веб-страница (на другом сайте) с экземпляром VEMap (объект карты Bing / Virtual Earth).
Теперь 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 и, возможно, что-то пропустил. Любая помощь приветствуется.