1

したがって、最初の機能が次のようになっている単純なWebサイトを作成しています。

ユーザーが KML ファイルを Web サイトにアップロードします。Google Maps API は、この KML ファイルを使用して初期化されるため、最近の移動を含む地図が表示されます。

これは非常に単純に聞こえますが、基本に問題があります。これは多かれ少なかれ Web 開発への私の最初の進出なので、HTML、CSS、AJAX、PHP、Google Maps API V3、そしてもちろん KML ファイル形式を学ぼうとしています。

KML ファイルを使用して Google Maps API を初期化するには、まず次のような基本情報を設定する必要があります。

function initialize() {
  var myLatlng = new google.maps.LatLng(40.65, -73.95);
  var myOptions = {
    zoom: 12,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

ここで重要なのは、マップの中心をどこにするかです。

これに加えて、使用する KML ファイルを指定する必要があります。

var nyLayer = new google.maps.KmlLayer(
      'http://www.searcharoo.net/SearchKml/newyork.kml',
      {  suppressInfoWindows: true,
         map: map});

もちろん、これらは単なる例であり、私が使用するデータではありません.

今、私の問題はそのようなものです。これらの値は、事前に決定され、静的であるように見えます。Google Maps API を初期化するには、これらの値を事前に知っておく必要があります。しかし、私の場合、これらの値は、ユーザーが KML ファイルをアップロードするまでわかりません。

ここまでで、ファイルのアップロードを処理する単純な PHP スクリプトができました。Google マップのセットアップを含む JavaScript に制御を渡す方法、またはファイルがアップロードされた後にのみ認識される値を使用してマップを初期化するようにこのコードを記述する方法がわかりません。

要約すると、私が達成しようとしていることは次のとおりです。

ユーザーが KML ファイルを参照します。ユーザーは「アップロード」ボタンを押します。ファイルがアップロードされ、すぐに動きを示すマップを初期化するために使用されます。

書きすぎたかもしれませんが、書き足りないよりは書きすぎたほうがいいと思います。アドバイスをいただきありがとうございます。

4

1 に答える 1

1

投稿したコード スニペットを考えると、KmlLayer は中央に配置され、ズームして kml ファイルの内容を表示する必要があります。そうでない場合は、問題を再現するのに十分な情報 (kml ファイルとそれを表示する html/js ファイル) を提供してください。

編集:あなたが書いた:

KML ファイルの名前を保存するには、php ファイル アップロード スクリプトが必要です。それから、どうにかして、マップの中心位置に関する情報を抽出する必要があります。

センターのデフォルトの動作が気に入らず、マップをズームして kml のすべてのコンテンツを表示しない限り、これを行う必要はありません。

次に、抽出したばかりの情報を使用して Google Maps API (これは JavaScript だと思います) を呼び出します。これはすべて、[アップロード] ボタンを 1 回押すだけで実行する必要があります。

はい。

EDIT2:

わかりましたが、どうやって?どうすればいいのかわからない。これは、Web 開発での私の最初の試みです。私は誰かにコードを書くように頼んでいるわけではありませんが、これを行う方法についての指針

ステップ 1:ドキュメントのこの例は、kml ファイルを表示する方法を示しています。「http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml」への参照を kml ファイルへの参照に置き換えます表示したい。

ステップ 2: php を変更して、ボタンがクリックされたときにロードして表示するために必要な html と javascript を生成します。それがどのように機能するかは、ページのどこに表示したいか、およびボタンがクリックされたときに表示される非表示の div にするか、新しいウィンドウにするか、またはその他のものにするかによって異なります。

于 2012-07-15T12:43:57.990 に答える