GVKun编程网logo

JavaScript – 在页面上嵌入Google地图,而不会覆盖iPhone滚动行为(js在chrome跳转到ie浏览器)

3

针对JavaScript–在页面上嵌入Google地图,而不会覆盖iPhone滚动行为和js在chrome跳转到ie浏览器这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展android–Co

针对JavaScript – 在页面上嵌入Google地图,而不会覆盖iPhone滚动行为js在chrome跳转到ie浏览器这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展android – Cordova Phonegap和Google Maps v3 javascript api:如何在点击许可链接或Google地图徽标时添加后退按钮功能、google地图的路线实现代码_javascript技巧、javascript - google地图api怎么调用它的测距功能、javascript – Google地图 – 来自extern json的多个标记等相关知识,希望可以帮助到你。

本文目录一览:

JavaScript – 在页面上嵌入Google地图,而不会覆盖iPhone滚动行为(js在chrome跳转到ie浏览器)

JavaScript – 在页面上嵌入Google地图,而不会覆盖iPhone滚动行为(js在chrome跳转到ie浏览器)

我正在努力优化移动网站.我们有一个位置页面,通过Google Maps API包含有关位置的信息和位置的地图. (v2 – 我知道这是不推荐的,但是我没有理由升级的时间,“如果没有破坏..”)我想使用单个列布局,其中包含基本信息,然后是地图,然后是更多信息.

现在,当我使用手指向下滚动iPhone上的移动页面时,一旦我到达地图,页面滚动将被覆盖,并且地图开始平移. 200新新新新旗新新新旗新新旗旗新新旗旗新新旗旗新新旗旗新新旗旗新新旗新旗新新旗旗新新旗旗新新旗新旗旗新新旗新旗新新旗旗新新200新新新旗新新200新200旗新新200新新旗旗规格新新新新旗新新新旗新新新旗新新新旗新新旗旗新新旗新200旗新新旗新新旗旗新新旗新新旗旗新新旗旗新新旗新旗新新旗新新旗新新旗旗新新旗新新旗旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新旗我想将地图视为静态图像,我可以滚动过去,但仍然允许缩放按钮,并允许通过我已编码的选择字段的方向重绘地图,所以literal static image不是一个解决方案.

我发现this post that required similar functionality,但它使用v3.我想我所需要做的只是“添加触摸事件到地图容器”,但我不熟悉那部分javascript,而我以下的内容不允许正常滚动. X-

function initialize() {
  if (GbrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    geocoder = new GClientGeocoder();
  }
}

function showAddress(address,zoom) {
//clipped... this part works fine
}

//These three lines create a map that my finger pans
initialize(); 
showAddress("[clipped.. street,zip code]");
map.addControl(new GSmallZoomControl3D());

//This stops the map pan but still prevents normal page finger scrolling
map.disableDragging();

//If done right Could this allow normal page finger scrolling??
var dragFlag = false;
map.addEventListener("touchstart",function(e){
   dragFlag = true;
   start = (events == "touch") ? e.touches[0].pageY : e.clientY; 
},true);
map.addEventListener("touchend",function(){ 
dragFlag = false; 
},true);
map.addEventListener("touchmove",function(
if ( !dragFlag ) return;
end = (events == "touch") ? e.touches[0].pageY : e.clientY;   
window.scrollBy( 0,( start - end ) ); 
},true);

我也尝试用document.getElementById(“map_canvas”)替换map.addEventListener.addEventListener或document.addEventListener无效.

解决方法

我解决了通过升级到v3,然后检测到一个基本的JavaScript错误,我使用上面链接的代码.关键是
start = (events == "touch") ? e.touches[0].pageY : e.clientY;

用户必须将事件变量设置在所呈现的代码之外的某处,因为它看起来像匹配的分配是触摸事件,而其他分配是关键事件.但是由于我没有事件变量,因此它是默认的错误的作业.我只是改变了我的开始= e.touches [0] .pageY(并做了相同的touchend事件),现在一切正常.

但是,我已经切换到v2,看看是否可以改正该javascript错误,而没有.所以看起来我没有浪费任何时间升级到v3,既无法弄清楚这个具体的解决方案,也没有设置自己的未来兼容性.

总而言之,如果您想在移动网页上嵌入Google地图,并且可以滚动浏览,那么您需要使用API​​ v3,禁用拖拽和添加触摸事件.我对我的代码做了一些微小的调整,在这里提供给将来可能受益的任何人:

function initialize() 
{
    geocoder = new google.maps.Geocoder();
    var myOptions = {
       mapTypeId: google.maps.MapTypeId.ROADMAP             
    };

    map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);
}

function showAddress(address,zoom) 
{
   if (geocoder) 
   {
      geocoder.geocode( { 'address': address },function (results,status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            map.setoptions( { zoom: zoom });
            var marker = new google.maps.Marker({
                map: map,position: results[0].geometry.location
            });
         }
      });
   }
}

initialize(); 
showAddress("'.$geocode_address.'");

map.setoptions( { draggable: false });

var dragFlag = false;
var start = 0,end = 0;

function thisTouchStart(e)
{
    dragFlag = true;
    start = e.touches[0].pageY; 
}

function thisTouchEnd()
{
    dragFlag = false;
}

function thisTouchMove(e)
{
    if ( !dragFlag ) return;
    end = e.touches[0].pageY;
    window.scrollBy( 0,( start - end ) );
}

document.getElementById("map_canvas").addEventListener("touchstart",thisTouchStart,true);
document.getElementById("map_canvas").addEventListener("touchend",thisTouchEnd,true);
document.getElementById("map_canvas").addEventListener("touchmove",thisTouchMove,true);

android – Cordova Phonegap和Google Maps v3 javascript api:如何在点击许可链接或Google地图徽标时添加后退按钮功能

android – Cordova Phonegap和Google Maps v3 javascript api:如何在点击许可链接或Google地图徽标时添加后退按钮功能

背景:
在 Android上运行的Cordova phonegap 2.2应用程序允许收听后退按钮事件
document.addEventListener("backbutton",function(e){ history.back();}

谷歌地图api V3创建地图,其中谷歌徽标链接到左下角的谷歌地图网页和右下角的可点击许可链接.徽标或服务条款链接没有特定的ID /选择器.

问题
当点击其中一个链接时,网页会被重定向到带有:target:_blank的Google网页,然后该网站会在与Cordava应用程序相同的窗口中打开,但后退按钮功能会丢失,因为该网页包含自己的Javascript.

是否可以在加载网页时注入一些代码?

一种解决方案可能是在外部打开链接:

navigator.app.loadUrl([href here],{ openExternal:true } );

但是又一次仍然存在缺乏选择者的问题.

更新:在许可页面或Google地图中单击按钮时,我在logcat中收到以下错误消息:11-13 16:20:30.500:E / Web控制台(31508):未捕获的ReferenceError:未定义cordova:1

解决方法

这是与谷歌地图链接相交的一种方法.

假设您有可用的jquery,可以在脚本中包含此方法:

function directUrlToExternalbrowser(urlPattern) {
  var pattern = "a[href^='"+urlPattern+"']";//all urls startting with urlPattern
  $(pattern).live('click',function(e){
      e.preventDefault();
      navigator.app.loadUrl($(pattern).attr("href"),{openExternal: true});
  });
}

然后,您可以通过以下行将点击引导至phonegap api:

directUrlToExternalbrowser("http://maps.google.com/maps");
directUrlToExternalbrowser("http://www.google.com/intl");

google地图的路线实现代码_javascript技巧

google地图的路线实现代码_javascript技巧

复制代码 代码如下:


javascript - google地图api怎么调用它的测距功能

javascript - google地图api怎么调用它的测距功能

如下图,在官网上他是绑定到点击右键上面,在谷歌地图开发者中心那里我没有看到这个的调用(即不是服务也不是库...),那么谁知道怎么调用啊。
javascript - google地图api怎么调用它的测距功能

回复内容:

如下图,在官网上他是绑定到点击右键上面,在谷歌地图开发者中心那里我没有看到这个的调用(即不是服务也不是库...),那么谁知道怎么调用啊。
javascript - google地图api怎么调用它的测距功能

墙太高,梯子不给力.所以帮不了你:-(
个人感觉墙内就用百度地图的api吧.功能能满足大部分需求了.

javascript – Google地图 – 来自extern json的多个标记

javascript – Google地图 – 来自extern json的多个标记

我必须在谷歌地图上添加多个标记,但数据在extern json文件中.

目前我正在这样运行它

var json = [
  {
    "title": "Stockholm",
    "lat": 59.3,
    "lng": 18.1,
    "description": "Stockholm is the capital and the largest city of Sweden and constitutes the most populated urban area in Scandinavia with a population of 2.1 million in the metropolitan area (2010)"
  },
  {
    "title": "oslo",
    "lat": 59.9,
    "lng": 10.8,
    "description": "oslo is a municipality, and the capital and most populous city of norway with a metropolitan population of 1,442,318 (as of 2010)."
  },
  {
    "title": "copenhagen",
    "lat": 55.7,
    "lng": 12.6,
    "description": "copenhagen is the capital of Denmark and its most populous city, with a metropolitan population of 1,931,467 (as of 1 January 2012)."
  }
];



for (var i = 0, length = json.length; i < length; i++) {
  var data = json[i],
      latLng = new google.maps.LatLng(data.lat, data.lng); 

  // Creating a marker and putting it on the map
  var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: data.title
  });
} 

现在我试图将Json文件排除到另一个文件,但是sadyl我不能让它工作;(

$.getJSON("foo.txt", function(json1) {

});


for (var i = 0, length = json.length; i < length; i++) {
  var data = json[i],
      latLng = new google.maps.LatLng(data.lat, data.lng); 

  // Creating a marker and putting it on the map
  var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: data.title
  });
} 

foo.txt的

{
    "title": "Stockholm",
    "lat": 59.3,
    "lng": 18.1,
    "description": "Stockholm is the capital and the largest city of Sweden and constitutes the most populated urban area in Scandinavia with a population of 2.1 million in the metropolitan area (2010)"
  },
  {
    "title": "oslo",
    "lat": 59.9,
    "lng": 10.8,
    "description": "oslo is a municipality, and the capital and most populous city of norway with a metropolitan population of 1,442,318 (as of 2010)."
  },
  {
    "title": "copenhagen",
    "lat": 55.7,
    "lng": 12.6,
    "description": "copenhagen is the capital of Denmark and its most populous city, with a metropolitan population of 1,931,467 (as of 1 January 2012)."
  }

谢谢你的帮助

解决方法:

您的代码中存在两个问题.你的json文件错过了[在开头和]结尾.你的javascript也错了,你想在getJSON的回调中用json做些什么.您的问题的代码是:

$.getJSON("foo.txt", function(json1) {
    $.each(json1, function(key, data) {
        var latLng = new google.maps.LatLng(data.lat, data.lng); 
        // Creating a marker and putting it on the map
        var marker = new google.maps.Marker({
            position: latLng,
            map: map,
            title: data.title
        });
    });
});

编辑:

这是一个基于google maps tutorial的工作示例.您需要正确的文件foo.txt:

<!DOCTYPE html>
<html>
  <head>
    <Meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=true">
    </script>
    <script type="text/javascript">
      var map;
      function initialize() {
        var mapOptions = {
          center: new google.maps.LatLng(58, 16),
          zoom: 7,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
      }
    </script>
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>    
  </head>
  <body onl oad="initialize()">
    <div id="map_canvas"></div>
    <script type="text/javascript">
      $(document).ready(function() {
        $.getJSON("foo.txt", function(json1) {
          $.each(json1, function(key, data) {
            var latLng = new google.maps.LatLng(data.lat, data.lng); 
            // Creating a marker and putting it on the map
            var marker = new google.maps.Marker({
                position: latLng,
                title: data.title
            });
            marker.setMap(map);
          });
        });
      });
    </script>
  </body>
</html>

今天的关于JavaScript – 在页面上嵌入Google地图,而不会覆盖iPhone滚动行为js在chrome跳转到ie浏览器的分享已经结束,谢谢您的关注,如果想了解更多关于android – Cordova Phonegap和Google Maps v3 javascript api:如何在点击许可链接或Google地图徽标时添加后退按钮功能、google地图的路线实现代码_javascript技巧、javascript - google地图api怎么调用它的测距功能、javascript – Google地图 – 来自extern json的多个标记的相关知识,请在本站进行查询。

本文标签:

上一篇javascript – 在本机iPhone应用程序中的UIWebView内部是否存在使用InnerHTML的错误?

下一篇使用wkhtmltopdf从HTML生成Google Web字体和PDF(chrome html document怎么改成pdf)