KMLViewer苹果的例子不工作

我一直在寻找相当的时间来解决我的问题没有成功。 所以在这里呢…

KMLViewer,苹果的例子在某些情况下不起作用。 在执行README步骤之后,我试图在葡萄牙的Lisboa和葡萄牙的Porto之间build立一条路线。 而在这里,最奇怪的事情发生。 虽然覆盖层(MKPolyline)没有,但它只绘制部分路线,并开始在“注释”中间绘图。

我错过了什么? 你可以试试,马德里 – 巴塞罗那,你也有同样的问题。

预先感谢在这个问题上的某个时间。

看起来像KMLViewer每个地Placemark只能处理一个LineString对象。

对于您尝试的路线,Google将在“路线”地标(文件中的最后一个)中返回两个LineString对象。 KMLViewer只显示第二个(最后一个)LineString段。

除了更新KMLViewer代码以添加对每个Placemark的多个LineString对象的支持(这看起来像一个很好的练习),您可以尝试这两个解决方法:

将两个LineString对象的坐标合并为一个LineString。 更改:

 <Placemark> <name>Route</name> <description>some cdata stuff here</description> <GeometryCollection> <LineString><coordinates>coord1 … coordN</coordinates></LineString> <LineString><coordinates>coordN+1 … coordK</coordinates></LineString> </GeometryCollection> <styleUrl>#roadStyle</styleUrl> </Placemark> 

对此:

 <Placemark> <name>Route</name> <description>some cdata stuff here</description> <GeometryCollection> <LineString><coordinates>coord1 … coordN coordN+1 … coordK</coordinates></LineString> </GeometryCollection> <styleUrl>#roadStyle</styleUrl> </Placemark> 

以上可能只适用于应该是连续的路线(线段)。

另一个解决方法是将“路线”地标分成多个地标(每个LineString一个):

 <Placemark> <name>Route A</name> <description>some cdata stuff here</description> <GeometryCollection> <LineString><coordinates>coord1 … coordN</coordinates></LineString> </GeometryCollection> <styleUrl>#roadStyle</styleUrl> </Placemark> <Placemark> <name>Route B</name> <description>some cdata stuff here</description> <GeometryCollection> <LineString><coordinates>coordN+1 … coordK</coordinates></LineString> </GeometryCollection> <styleUrl>#roadStyle</styleUrl> </Placemark> 

与此有关的一个问题是,包含距离和时间信息的“描述”将不匹配拆分路线。

对。 非常感谢您的快速响应。 我在早上发现问题是这些标签在一起(closures和打开)

 </coordinates></LineString><LineString><coordinates> 

我的计划:

将URL的输出保存为NSString,如果存在上面的标记,则将其删除,之后保存到文件并将其发送到KMLParser。 当我完成时我会回来的。

再次感谢您的回应。