2

我想在 PhoneGap 应用程序上使用 OpenStreetMap。

我的问题是PhoneGap 上没有触发点击事件。

下面的代码在普通浏览器中工作:

<!DOCTYPE HTML>
<html>
  <head>
   <title>OpenLayers Demo</title>
    <style type="text/css">
      html, body, #basicMap {
          width: 100%;
          height: 100%;
          margin: 0;
      }
    </style>
    <script src="http://www.openlayers.org/api/OpenLayers.js"></script>
   <script>
  function init() {
    map = new OpenLayers.Map("basicMap");
    var mapnik         = new OpenLayers.Layer.OSM();
    var fromProjection = new OpenLayers.Projection("EPSG:4326");   // Transform from WGS 1984
    var toProjection   = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection
    var position       = new OpenLayers.LonLat(7.55785346031189,50.3625329673905).transform( fromProjection, toProjection);
    var zoom           = 18; 

    map.addLayer(mapnik);
    map.setCenter(position, zoom );

    var markers = new OpenLayers.Layer.Markers( "Markers" );
    map.addLayer(markers);

    var marker = new OpenLayers.Marker(position);

    marker.events.register("click", map , function(e){ alert("click");
    });

    markers.addMarker(marker);
  }
 </script>
</head>
<body onload="init();">
  <div id="basicMap"></div>
</body>
</html>

当此代码在PhoneGap 中显示地图时,显示地图并显示标记。但是,当我单击标记时,什么也没有发生。

有谁知道为什么这不起作用。我正在使用 Android Emulator 并正在使用 Eclipse 创建 PhoneGapApplication。

4

1 回答 1

0

@Alexander,这不是一个明确的答案,只是一个提示,但是您是否尝试过 Leaflet.js 来查看它是否有效?从未为 PhoneGap 开发过,但我有几个在 Android/iOS 设备上使用 Leaflet 的移动网站,没有任何问题。

于 2014-01-21T20:25:11.223 回答