リーフレット用のBingおよびGoogleタイルレイヤーの作成


8

Leaflet JavaScriptライブラリを使用して、GoogleとBingのタイルレイヤーの両方を表示したいのですが、URLの作成方法がわかりません。ドキュメントはOSMを使用した例を示しています。

var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/YOUR-API-KEY/997/256/{z}/{x}/{y}.png',
cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18});

しかし、何らかの理由で、これをBingでもGoogleでも複製することはできません。何か案は?

ありがとう。

回答:


11

グーグルマップ

Googleマップはそのような使用を禁止します。彼らのコンテンツへの唯一の許可されたアクセスは、Maps API(ToSのセクション10.1を参照)を介したものです。

Bing Maps Webサービス

Bing Mapsは、私が知っている唯一の商用プロバイダーであり、Webサービス機能を通じてそのような使用を許可しています。ただし、APIキーが必要になります。

Bingは、{x、y}座標の代わりにクワッドキー(各タイルの一意のインデックス)を使用するため、Bingを取得するのは少し面倒です(そこでの比較は適切です)。したがってL.ILayer、このURLスキームに準拠する新しい実装を作成する必要があります。

もちろん、あなたがこのリクエストを最初にしたのはあなたではありません;)、他の人たちはすでにそのような実装をコーディングしています。1つは、Leafletリポジトリに対する保留中のプルリクエストで、もう1つはGistとして直接利用できます。好きな方を試して、プルリクエストに重みを加えて、より速くマージできるようにしてください:)


MattiSG、Googleの制限はOpenLayersが不一致であることを意味しますか?APIは、OpenLayersマップ内のGoogleレイヤーのクラスを提供します。dev.openlayers.org / releases / OpenLayers -2.11 / doc / apidocs / files / OpenLayersまたはLeafletを使用してGoogleマップデータを描写しても問題ありませんデータを取得するためのリクエストは、Maps APIを使用して行われますか?
ライアンクラーク

@RyanClarkさて、Google ToS 10.1.1から:「たとえば、Maps API以外のインターフェースまたはチャネルを介してマップタイルや画像にアクセスすることはできません。」したがって、OpenLayers が公式のMaps APIに対して抽象化レイヤーを提供している限り、問題ありません。タイルに直接アクセスしても問題はありません。少なくとも、それが私の理解です;)
MattiSG

GoogleはOpenLayersに書面で許可を与えています(現在、リンクする投稿が見つかりません)。OpenLayersを使用しているかどうかは明らかです。
Devdatta Tengshe

2

私はグーグルマップがそれを禁じていることを知っています、しかしあなたがこのプラグインを使用するなら、あなたはそれをすることができます。

フォルダgoogle.html下のファイルを確認してexamplesください。

15行目を次のように変更します。

var ggl = new L.Google("ROADMAP);

それはあなたのために働くはずです:)

ただし、これがグーグルのTOSを順守しているのかどうかはわかりません。


2

Bingマップタイルを直接使用してみることができます。これはBing TOSに準拠していないと思いますが、キーをMicrosoftに登録し、マップの実装から著作権リンクを提供します。問題はありません。たとえばMaps of Allをチェックして、Google Maps API内のライブBingタイルを確認してください。次にhttp://www.mapsofall.com/public/js.jsを確認すると、Bingタイルの具体的なURLがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.