当网页上的链接转到maps.google.com/?q = http://example.com/mapdata.kml时,如何强制iPhone地图应用程序打开?
如果我打开地图应用程序并专门将http://example.com/mapdata.kml放在查询框中,则会正确加载所有数据。但是如果我使用http://maps.google.com/?q=http://example.com/mapdata.kml,地图应用程序会加载,但不会加载任何数据,查询框中也没有任何内容。
典型的查询有效,例如q = cupertino或q = [纬度,经度]。这似乎是kml链路坏了。
有没有人让这个工作?这支持吗?你必须对查询进行URI编码吗?
答案 0 :(得分:7)
您的问题让我感兴趣,所以我在Apple URL Scheme Reference进行了一些调查。它说:
虽然地图应用程序支持 许多Google Maps参数和 查询,它不支持所有。 创建有效地图的规则 链接如下:
域名必须是google.com和 子域必须是map或ditu。
在 path必须是/,/ maps,/ local或/ m 如果查询包含站点作为键 和本地作为价值。
路径 不能/ maps / *。
所有参数必须 得到支持。有关列表,请参阅表1 支持的参数。
参数 如果值是URL,则不能是q = * (所以KML没有被选中)。
在 参数不能包含view = text或 dirflg = R
如果我正确阅读,那看起来并不像你想要的那样,但是,有趣的是你可以直接在地图应用中输入完整的kml网址并使其正常工作。这似乎是苹果公司的一个漏洞。我会开始向它投掷参数,看看会发生什么。这总是很有趣。 ; - )
最诚挚的问候,
P.S。 是一个不错的贴纸。我更喜欢赏金,但看起来你还没有足够的SO积分来提供。 ; - )
答案 1 :(得分:2)
此链接将执行您想要的操作
<a href="maps:q=http://example.com/mapdata.kml">
但它只适用于iOS,所以请务必检查用户代理等,并在非iOS上使用普通的地图网址
<a href="http://maps.google.com?q=http://example.com/mapdata.kml">
答案 2 :(得分:0)
最简单形式的地图网址地图:q = GivenTitle @ latitude,经度