Yandex api v2に基づく村の一般的な計画、または画像と地図の座標を相関させる方法

Yandex APIに基づく村の一般的な計画



私たちの仕事の目的は:






マップの特定の部分、たとえばエリア内でナビゲーションを整理する必要がある場合があります。 そのため、Yandexマップ、 ユーザーレイヤー 、およびマップの管理が役立ちます。 多くの点でそう思われるかもしれませんが、Yandexがこれに対する解決策を持っているのであれば、なぜこれをすべて説明してください。 Yandexにはこの機能があるとすぐに答えますが、すべてのタスクに解決策はありません。



仕事のために、私は使用しました:






すぐに私たちが得たもののビュー:


作業の結果。 Yandex APIに基づく村の一般的な計画



タイルの準備を始めましょう:


各極端なコーナーにポイントとそれに対応するコーディネーターを配置します(これにより非標準のソリューションが見つかりました。半透明の画像を作成してマップに配置しました)。 どういうわけか、ポイントが写真の縦横比で一致しない場合、画像がゆがむ可能性があります。 カード用にカスタマイズ-これは必要ありません!!!



タイルの準備



苦労してポイントを配置した後、タイルを保存します。 結果は次のようになります。



タイル準備結果



ブザーに対応するフォルダー内の解像度256x256の小さなスライス。 フォルダの数とその番号付けは、画像ズームの数に依存します。



生成されたファイルの接続スクリプトを次のように変更します。


<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script> <script src="http://api-maps.yandex.ru/2.0/?load=package.standard,package.geoObjects&lang=ru-RU" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script>
      
      





bodyタグ内には、次のもののみを残します。

 <div id="YMapsID"></div> <!--      --> <map id="ImageMapsCom" name="image-maps"> <a href="/catalog/projects/aleksandrovskij_21186_kvm3/" alt="" title=".  1a" data-maps="2042,239,2137,331" class="hause_items_shows" data-info="1310"> <div class="show-items-info"> <img src="/images/cms/data/catalog/12.jpg" alt=""><div class="description-house"> <p class="status"><span>:</span><span color="1716"></span></p><p class="plowad"><span>: </span>5,05</p><p class="stoimost"><span>: </span></p></div></div> </a> <a href="/catalog/projects/aleksandrovskij_21186_kvm3/" alt=" 265,29 .." title="" data-maps="1319,1237,1441,1339" class="hause_items_shows" data-info="1310"> <div class="show-items-info"> <img src="http://adveks.gowhiterabbit.ru/images/cms/data/content/minimarket.png"> </div> </a> <!--  . . . . --> </map>
      
      







個々のカードスタイルについて少し説明しますが、スタイルを接続します。

 #YMapsID { width: 100%; height: 100%; min-height: 600px; } #YMapsID > ymaps { background: url("bg.png") repeat scroll 0 0 rgba(0, 0, 0, 0); } #YMapsID .ymaps-copyrights-pane, #YMapsID .ymaps-controls-rightbottom { display: none; } #YMapsID.hause_items_shows{ display: none; } #YMapsID.show-items-info { background: none repeat scroll 0 0 rgba(253, 250, 243, 0.8); left: 0; padding: 15px; top: 0; width: 250px; z-index: 19; }
      
      







地図の設定:

 var options = { tileUrlTemplate: "./%z/tile-%x-%y.png", controls: { typeControl: true, miniMap: false, toolBar: true, scaleLine: true }, scrollZoomEnabled: true, mapCenter: new YMaps.GeoPoint(  ,  ), backgroundMapType: YMaps.MapType.NONE, mapZoom: 17, isTransparent: true, smoothZooming: false, layerKey: "my#layer", mapType: { name: "", textColor: "#000000" }, copyright: "", layerMinZoom: 16, layerMaxZoom: 20 };
      
      







アンロードからメロンを取得する機能


ここでは、画像ナビゲーションシステム(ピクセル単位)からマップナビゲーションシステム(度)への移行、つまり ピクセルを度に変換します。

ピクセルから次数への公式

 var contentString = new Array(); function strat_masiv() { var clo_in=0; $('#ImageMapsCom .hause_items_shows').each(function (_index, _label) { var blocks = $(_label); contentString[clo_in] = new Array(); var bjects_alt = $(blocks).attr('alt'); var example = $(blocks).attr('data-maps').split(','); var max_x_dpi = 39.05776, //    max_x_px = 7986, //    min_x_dpi = 39.048469, //    max_y_dpi = 51.74439, //    max_y_px = 3606, //    min_y_dpi = 51.747;//    contentString[clo_in][0] = $(blocks).attr('title'); contentString[clo_in][1] = $(blocks).html(); // Y contentString[clo_in][2] = min_y_dpi+((((parseInt(example[1], 10)*100)/max_y_px)*(max_y_dpi-min_y_dpi))/100); // X contentString[clo_in][3] = min_x_dpi+((((parseInt(example[0], 10)*100)/max_x_px)*(max_x_dpi-min_x_dpi))/100); contentString[clo_in][4] = $(blocks).attr('href'); contentString[clo_in][5] = ''; // Y contentString[clo_in][6] = min_y_dpi+((((parseInt(example[3], 10)*100)/max_y_px)*(max_y_dpi-min_y_dpi))/100); // X contentString[clo_in][7] = min_x_dpi+((((parseInt(example[2], 10)*100)/max_x_px)*(max_x_dpi-min_x_dpi))/100); clo_in++ }); console.log('Y='+contentString[0][6]+' x='+contentString[0][7]); } ymaps.ready(function () { strat_masiv(); //      TilerConverter     . var myMap = (new TilerConverter(options)).getMap(); //  for (var i = 0; i < contentString.length; i++) { contentString[i][5] = new ymaps.Rectangle([ [contentString[i][2],contentString[i][3]], [contentString[i][6],contentString[i][7]] ], { balloonContentHeader: contentString[i][0], balloonContent: contentString[i][1], balloonContentFooter: "<a href='" + contentString[i][4] + "'></a>", hintContent: contentString[i][0] }, { fillColor: '#7df9ff33', fillOpacity: 0.5, strokeColor: '#0000FF', strokeOpacity: 0.5, strokeWidth: 2, borderRadius: 6 }); myMap.geoObjects.add(contentString[i][5]); }; });
      
      







すべての設定の後、希望に応じて、設定した家の周りにこれらの小さな正方形が表示されないようにします。

  fillOpacity: 0, strokeOpacity: 0,
      
      







完全なスクリプトファイル

リポジトリへのリンク!



All Articles