ROME & GeoRSS - Невозможно написать GML
У меня возникли некоторые проблемы при создании ссылки на основе GML с использованием ROME. Мой код (надеюсь!) Объяснит, что я пытаюсь сделать лучше:
public static void geoRSSTest() {
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
// Set some simple fields
feed.setTitle("Sample Feed");
feed.setLink("http://example.com");
feed.setDescription("This is a sample RSS feed");
// Create list of entries
List entries = new ArrayList();
SyndEntry entry;
// Create entry
entry = new SyndEntryImpl();
entry.setTitle("Sample Entry");
entry.setPublishedDate(new Date());
// Add positional information
GeoRSSModule geoRSSModule = new GMLModuleImpl();
geoRSSModule.setPosition(new Position(54.2, 12.4));
entry.getModules().add(geoRSSModule);
// Add entry to the list
entries.add(entry);
// Add entry to the feed
feed.setEntries(entries);
// Write to console
SyndFeedOutput sfo = new SyndFeedOutput();
try {
System.out.println(sfo.outputString(feed));
} catch (FeedException ex) {
System.err.println(ex);
}
}
С помощью приведенного выше кода я получаю следующий XML-код, напечатанный на консоли:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
<channel>
<title>Sample Feed</title>
<link>http://example.com</link>
<description>This is a sample RSS feed</description>
<item>
<title>Sample Entry</title>
<pubDate>Tue, 26 May 2015 12:57:50 GMT</pubDate>
<dc:date>2015-05-26T12:57:50Z</dc:date>
</item>
</channel>
</rss>
Как видите, позиционной информации нет.
Тем не менее, изменение GMLModuleImpl()
в SimpleModuleImpl()
дает следующее:
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0">
<channel>
<title>Sample Feed</title>
<link>http://example.com</link>
<description>This is a sample RSS feed</description>
<item>
<title>Sample Entry</title>
<pubDate>Tue, 26 May 2015 12:57:50 GMT</pubDate>
<dc:date>2015-05-26T12:57:50Z</dc:date>
<georss:point>54.2 12.4</georss:point>
</item>
</channel>
</rss>
Как видно, сейчас <georss:point>
элемент.
Я использую Rome 1.5.0 с модулями Rome 1.5.0 через Netbeans 8.0.2.
Я что-то упустил при попытке создать информацию о местоположении с помощью GMLModuleImpl()
?