5

私がファイルから赤くしたように、readmeファイルopenlayers.jsとテーマを含めるための複数の選択肢があります。

私が欲しいのはlightest solution of openlayers.jsファイルを使うことです。

openlayers.light.jsは自分のアプリにを含めました、そしてそれは地図を作成しますがそれらを表示しません、これをチェックしてください:

ここに画像の説明を入力してください

他のファイルを含めるのを忘れましたか?

私の構造構造はこれです:

/vendor
   /js
     openlayers.light.js
     /img
     /theme

マップレイヤーを表示する方法は?

またopenlayers.light.js、モバイルデバイスでも機能しますか(この問題を修正すると:P)?または私も含める必要がありopenlayers.mobile.jsますか?

これは、openlayers.light.jsでは機能しないが、openlayers.js(740kb)では機能するコードです。

var _element = "#map";
 var map = new OpenLayers.Map (_element, {
    controls: [
    new OpenLayers.Control.Navigation({
      dragPanOptions: {
        enableKinetic: true
      }
    }),
    new OpenLayers.Control.Zoom()
    ],
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: new OpenLayers.Projection("EPSG:4326")
  });

  var lonLat = new OpenLayers.LonLat(_lon, _lat).transform (
new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
// map.getProjectionObject() doesn't work for unknown reason
);
  var markers = new OpenLayers.Layer.Markers( "Markers" );
  map.addLayer(markers);

  var size = new OpenLayers.Size(21,25);
  var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
  var icon = new OpenLayers.Icon(_img_map_marker, size, offset);
  markers.addMarker(new OpenLayers.Marker(lonLat, icon.clone()));

  var mapnik = new OpenLayers.Layer.OSM("Test");
  map.addLayer(mapnik);

  map.setCenter (lonLat,3);

PS:私のopenlayers map js initメソッドは大丈夫です、それは巨大なものを使用して動作しますopenlayers.js (740KB)が、上に示したようにopenlayers.light.jsでは動作しません

html

<div id="map"></div>

css

img{max-width:none;}
#map{
width:300px;
height:300px;
}
4

1 に答える 1

3

手でパンまたはズームするようにopenlayersでモバイルプロパティを使用する場合は、openlayers.mobile.jsを使用する必要があります。

openlayers.light.jsはモバイルデバイスでは使用できますが、モバイル機能では使用できません。

私はあなたの構造が次のようになるべきだと思います:

myProject
   /js
      openlayers.light.js
   /img
   /theme

http://jsfiddle.net/aragon/ZecJj/でopenlayers.light.jsを試しましたが、問題はありません。

私のコード:

var map = new OpenLayers.Map({
    div: "map",
    minResolution: "auto",
    maxResolution: "auto",
});

var osm = new OpenLayers.Layer.OSM();
var toMercator = OpenLayers.Projection.transforms['EPSG:4326']['EPSG:3857'];
var center = toMercator({x:-0.05,y:51.5});
map.addLayers([osm]);


map.setCenter(new OpenLayers.LonLat(center.x,center.y), 13);

そして、デプロイ(アプリケーションでのOpenLayersの出荷)を読んでみてください。

OpenLayersには、事前に構成されたサンプルが付属しています。OpenLayersのリリースをダウンロードするだけで、使いやすいサンプルのフルセットを入手できます。ただし、これらの例は開発に使用するように設計されています。アプリケーションをデプロイする準備ができたら、帯域幅とロード時間を制限するために、高度に最適化されたOpenLayersディストリビューションが必要です。

このリンクを使用してsrcファイルを変更すると、引き続き機能することがわかります。

 <script type="text/javascript" src="http://openlayers.org/dev/OpenLayers.light.debug.js"></script>

<script type="text/javascript" src="https://view.softwareborsen.dk/Softwareborsen/Vis%20Stedet/trunk/lib/OpenLayers/2.12/OpenLayers.light.js?content-type=text%2Fplain"></script>

お役に立てば幸いです...

于 2013-02-11T12:38:37.230 に答える