2016-04-26 19 views
0

私は自分のPHPベースのウェブサイトで自分のGoogleマップ用のKMLレイヤーをプロジェクト用に作成しようとしています。GoogleマップJavascript API KML層 - オープン料金マップAPIを使用していますか?

私が使用したいAPIのURLが私のためには機能していないようです。 APIはここにあります。 http://openchargemap.org/site/develop/api。それは、電気自動車の充電ステーションを地図上に提示するためのものです。

他のAPIやgoogleの例を使用すると、私のコードでうまく動作しますが、必要なものは動作しません。

var kmlLayer = new google.maps.KmlLayer({ 
    url: 'http://api.openchargemap.io/v2/poi/?output=kml&countrycode=GB&maxresults=500', 
    suppressInfoWindows: true, 
    map: map 
}); 

上記のコードは、初期化マップ機能の中にあります。

私はそれらのどれもうまく動作しないURLに対してさまざまなバリエーションのAPIを試しました。上記の例は英国の結果で最大500で、出力はKMLに設定されています。

私が気付いたことは、このAPIをブラウザに出力してKMLとしてブラウザに入力すると、認識できないファイルとしてローカルにダウンロードし、開発者ページのGoogleサンプルと他のAPISを直接ダウンロードすることですKMLの

Notepad ++で開いたときに認識されないファイルは、私が望むKMLの機能であり、アップロードしてその方法で使用できるKMLとして保存することができます。私は、OpenchargeマップAPIに何か問題があると思います。しかし、私はすべてこれに新しいので、任意の助けに感謝!

ありがとうございました! KmlLayer

KML layers Google Devlopers page

答えて

0

はあなたのケースでFETCH_ERRORを返すgetStatus()方法があります。これは、GoogleのAPIがあなたのためにKMLをダウンロードする際に問題があることを意味します。彼らはOpencharge APIに接続してKMLをダウンロードするために、独自のサーバーを使用しているため、原因を特定することは困難です。しかし、自分でKMLファイルをダウンロードしてアップロードしてサーバーからロードしようとしても、INVALID_DOCUMENTというエラーが表示されます。つまり、ファイルが有効なKMLでないか、GoogleマップAPIが解析できません。可能なステータスのリストはgoogle maps js api docsで確認できます。

はい、コードには間違いなくAPIに問題があります。あなたができることは、KMLを読み込んで解析し、APIにフィードする有効なKMLを作成する、あなたのサーバ上にスクリプトを作成することです。したがって、必要があります:

  1. サーバーからURLを読み込み、XMLとして解析します(KMLはXML表記)。 Thisは、PHPでこれを行う方法の例です。
  2. 解析されたXMLから、ロケーションコーディネーションと必要なデータだけを含む独自の有効なKMLファイルを作成します。
  3. スクリプトでこの新しく作成されたKMLを返します。
  4. は、例えば、代わりに元のAPIのスクリプトのURLをロードします。

    var kmlLayer = new google.maps.KmlLayer({ url: 'http://yourserver/yourscript&optionalparameters', suppressInfoWindows: true, map: map });

+0

はい、これは理にかなって、私はこの打撃を与えるだろう。私はまさにあなたがやったことをして、私はあまりにも..認識できないファイルとしてKMLを取得しようとしているURLを私は言った応答..ありがとう! – aa29

+0

@ aa29ファイルが有効である限り、ファイルが認識されないように見えるかどうかは関係ありません。しかしこの場合、データは有効なKMLファイルではありません。少なくとも、Googleマップのapiが解析できる種類ではありません。答えに問題はありません。答えが気に入ったら、それをアップヴォートすることができます。 –

関連する問題