2

我正在尝试显示一个谷歌静态地图,点击它会打开一个更大的 iframe,用户可以在其中平移、缩放等。

JSFiddle在这里

下面的代码:

<div>
    <a class="various fancybox.iframe" title="Whitehouse - USA" href="https://maps.google.com/maps?f=d&amp;source=s_d&amp;saddr=&amp;daddr=1600+Pennsylvania+Ave+NW,+White+House,+Washington,+DC+20500&amp;hl=en&amp;geocode=Ca3jx5Eq6BcjFQ6IUQIdG4Ro-ynPaZnjvLe3iTGGOSyaFzTP2g&amp;sll=38.897678,-77.036517&amp;sspn=0.009644,0.01443&amp;g=1600+Pennsylvania+Avenue+Northwest,+Washington,+DC&amp;mra=ls&amp;ie=UTF8&amp;t=m&amp;ll=38.89768,-77.036519&amp;spn=0.008016,0.013733&amp;z=16&amp;output=embed">

        <img src="http://maps.googleapis.com/maps/api/staticmap?center=1600+Pennsylvania+Ave+NW,+White+House,+Washington,+DC+20500&markers=1600+Pennsylvania+Ave+NW,+White+House,+Washington,+DC+20500&size=300x300&sensor=false">

    </a>
</div>

我试图寻找与 iframe 相关的非 JavaScript 文档,但没有遇到任何问题。我想在 iframe中添加以下内容:

标记居中 - JSFiddle 显示居中,但在生产站点上运行的完全相同的代码会呈现一个 iframe,标记显示在左上角。

删除标记标签“B”

从我的数据库中输入我自己的坐标- 例如......对纽约市、芝加哥等执行相同的操作。但是,我尝试更改daddr(目标地址),但不确定其他变量代表什么(即 sll , sspn, g, mra, ll 等)

获取路线 - 插入起点,并获取前往预定目的地的路线

4

1 回答 1

2

首先解释一下你需要的参数:

  • f
    必须是d方向

  • saddr
    起始地址,可以是字符串(将被地理定位)或 latLng

  • daddr
    目标地址,可以是字符串(将被地理定位)或 latLng

  • ll
    在哪里居中地图(latlng)。当省略时,地图将基于标记居中

  • z
    地图的缩放。省略时,地图将根据方向缩放

  • output
    必须embed用于 iframe

您可以在http://www.seomoz.org/ugc/everything-you-never-wanted-to-know-about-google-maps-parameters找到参数的详细列表和说明

但是:您应该注意,这些参数都不是任何官方 API 的一部分,它可能每天都在变化


问题:

  1. 标记居中:
    标记无法居中,因为地图开始加载时 iframe 不可见,无法确定 iframe 的大小。您可以使用一种解决方法:

    首先将一个虚拟页面加载到 iframe 中,当 fancybox 打开时,加载地图。

    这可以通过将其添加到 fancybox-options 来完成:

    beforeLoad: function(){
      //store the original href for later use
     this.oldhref=this.href;
      //replace the href with some dummy-page
     this.href='wait.htm';
     return true;
    },
    afterLoad:function(){
      //load the originally requested page to the iframe
     $('.fancybox-iframe').attr('src',this.oldhref);
    }
    
  2. 删除标记标签“B”
    ,没有删除 B 的选项,你所能做的就是用A替换它。因此,您必须将标记设置为起始目的地的标记 (saddr)

  3. 从我的数据库中输入我自己的坐标
    将坐标应用于saddr或daddr(取决于它应该是什么,开始或目的地)

  4. 获取路线 - 插入起点,并获取前往预定目的地的路线,
    请参阅 3。


最后:您应该考虑使用 Maps-Javascript-API 创建自己的地图,以获得您可以自己处理的地图。

于 2013-01-08T18:30:51.330 回答