嵌入谷歌地图 - “在Google地图上查看”链接在移动设备上损坏

时间:2014-02-12 21:46:42

标签: javascript html google-maps mobile embed

我已经使用“分享和嵌入”地图选项将地图放在我正在开发的网站上(来自“新”Google地图底部的齿轮:

MapsShareAndEmbed

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2426.5340551802665!2d-1.3732330000000013!3d52.541864000000004!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x48775aa3a9b0d003%3A0x733a43420fa646be!2sAT+Home+Furniture!5e0!3m2!1sen!2s!4v1392282549357" width="600" height="450" frameborder="0" style="border:0"></iframe>

在桌面上,它运行正常,您可以点击“在Google地图上查看”,它可以按照您的预期运行,并在Google地图上显示商店位置。但是,当您在移动设备(Nexus 5,iPad 3,Nexus 7)上单击此链接时,它只会将Google地图应用程序打开到常规区域,然后人们必须手动键入搜索才能找到商店(屏幕截图)出现的内容如下。)

这肯定不是Google地图的错误吗?我做错了什么?其他人是否也以同样的方式体验过这种情况?

目前网站的链接是:AT Home Furniture

2014-02-25编辑 - 如果没有办法解决这个问题(谷歌肯定忽略了这里的东西?!),那么是否有可能复制这个(如果用户定制的地图)他们已经登录了API?如果您查看该网站,您应该会看到这一点,但它是嵌入iFrame时Google地图的标准功能。

2014-02-26编辑 - 如果我使用Google Maps API,我该如何设置在桌面上工作的“完整地图”(在谷歌地图中打开)的链接和移动?

Google Maps Embed Broken On Mobile Devices

1 个答案:

答案 0 :(得分:2)

您可以使用自定义地图API信息窗口显示共享地图链接等。

请参阅此处的示例:http://jsfiddle.net/PEHba/7/

您可以添加任意数量的标记。只需将第8-13行放入循环中即可。单击标记时要显示的所有信息都必须包含在标记内。点击后,我们使用this.xyz来访问它们。

google.maps.event.addDomListener(window, 'load',       function() {
    var map = new google.maps.Map(document.getElementById("map-canvas"),
    {
        center: new google.maps.LatLng(52.54215, -1.37335),
        zoom: 14
    });
    //add a marker
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(52.542151, -1.373351),
        map: map,
        title:"Hello World!",
        View_on_Google_Maps_link: 'https://www.google.com/maps/place/AT+Home+Furniture/@52.541864,-1.373233,16z/data=!4m2!3m1!1s0x0:0x733a43420fa646be?hl=en-GB'
    });

    //attach a click event to the marker to display the info window.
    google.maps.event.addListener(marker, 'click', function() {
        //create a info window to show when a maker is clicked
        var infowindow = new google.maps.InfoWindow({
            content: '<div>Share link: '+ this.View_on_Google_Maps_link +'.</div>'
        }); 
        infowindow.open(map,this);
    });



});