問題タブ [geoxml3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Google Maps API & geoxml 3 - クリックで目印にズーム/地図上の目印を中央に配置
更新されたスクリプト - クリックとズーム/センター
まだ正しくありません。最初のクリックで infoWindow put がズーム/中央に表示されません
XML:
こんにちは、Google Maps API と geoxml3 を使用してカスタム マップを作成しようとしています。マップをセットアップし、外部の KML.xml ファイルから読み込まれた目印のリストを含むカスタム サイドバーを追加することができました。
サイドバーから、または地図自体で目印をクリックすると、目印が自動的に中央に表示され、ズームインされるようにしたいと考えています。
これまでに持っているHTMLとスクリプトは次のとおりです。
HTML:
脚本:
どんな助けでも大歓迎です。
javascript - ページのリロード後に Javascript のみがオブジェクト プロパティにアクセスする
私のコードにはかなり奇妙な問題があります。kml ファイルを解析するために geoxml3 を使用しています。すべてのポリラインを正常に解析しますが、マーカーに到達すると、コンソールにはundefined
. 奇妙な点は、ページをリロードするたびに正常に動作するのに、新しいタブで開くたびに再び壊れることです。さらに奇妙なことに、条件の前に右を置いて、console.log
それがポリラインかマーカーかを確認すると、ブラウザーのコンソールにmarker
プロパティがあることが示されます。
geoxml3 が必要とする useTheData 関数は次のとおりです。
javascript - 別のサイトで使用すると KMZ レイヤーが表示されない
そのため、Web サイトに KMZ レイヤーが表示されていますが、他の場所には表示されません。これは私のJavascriptです:
park2.kmz レイヤーは、xampp を使用した 127.0.0.1/localhost やhttp://example.com/test/map.htmlなどでは表示されません。ただし、 http://example.com/map.htmlには表示されます。何か案は?
google-maps - Google マップの KML でカスタム アイコンが消えた
税関のアイコンは Google マップ (KML ファイルを使用) で機能していましたが、消えてしまいました。関連する stackoverflow の投稿を読みましたが、まだ使用していないため<color/>
、マップで何ができますか?
ここでサンプルページを見ることができ、スクリプトは次のとおりです。
javascript - geoxml3 を使用して KMZ または KML ファイルの境界を取得する方法は?
私のプロジェクトでは、約 600 以上の kmz/kml ファイルを含むディレクトリから複数の kmz ファイルをロードしています。ユーザーがマップを移動し、ボタンをクリックして関連する kmz ファイルをロードすると、最大 5 つのファイルがロードされます。カバーされる領域が広すぎないように、ズームが十分に大きいことを確認するためのチェックがあります。
関連する kmz/kml ファイルをロードするには、kmz/kml からの目印がビューポート内に部分的にでも収まる場合、ファイルがロードされるという考え方です。これらの kmz/kml ファイルをすばやく読み込むために、次の手順を考えました。
ステップ 1:各 kmz/kml ファイルの境界を個別に抽出し、ファイルに保存します。map.getBounds()
ビューポートの境界を取得する方法、および kmz 内の特定のポリゴンを取得する方法を知っていますgeoXmlDoc.placemarks[i].polygon.bounds
。しかし、すべてのポイント、ライン、ポリゴンを含む kmz ファイル全体の境界を取得する方法はありますか?
すべての kmz/kml ファイルの境界を含む境界ファイルを生成するには、この手順を 1 回だけ実行する必要があることを理解しています。ループを介して各ファイルを個別にロードし、ビューポートの getBounds を呼び出してみましたが、残念ながらビューポートは kmz の境界に正確には適合しません。通常、ビューポートは大きくなります。
ステップ 2:ユーザーがマップを新しい場所に移動し、関連する kmz ファイルの読み込みをクリックすると、ビューポートの境界が kmz 境界のいずれかと交差するかどうか、統合された境界配列のみがチェックされます。
javascript - .kml ファイルからの目印を含む Google マップ ポリゴン (geoxml3 と kmllayer を使用)
ポリゴン レイヤーと Placemarks レイヤーを同じマップに取り込もうとしています。
ただし、geoxml3 パーサーを使用して .kml ファイルから Polygon レイヤーをロードした後。
いくつかの Placemarks レイヤーをロードしようとしましたが、成功しましたが、Placemarks は Polygons の下にあるようです。
オンラインで検索して、解析後にのみレイヤーをロードするという提案を試みましたが、うまくいきませんでした。kmllayer で zIndex も試しましたが、うまくいきません。
目印をポリゴンの上に表示するにはどうすればよいですか?
私のコードの短い部分を以下に示します。
javascript - 更新時に古い geoxml3 レイヤーを削除する
Web ページに Google マップがあり、geoxml3 を使用してレイヤーを解析しています (多くの目印付き)。
新しい .kml ファイルをプルするために 10 秒ごとに jquery をトリガーするタイマーがあります。ただし、新しいレイヤーを解析する前に、古いレイヤーを削除したいと思います。
質問:削除/破棄する正しい方法は何ですか?
があることは知っていますがgeoXml.hideDocument();
、それはレイヤーを非表示にするだけで、レイヤーを削除/破棄しませんか? (以下は hideDocument() の実装です)
refreshMap() - 前のレイヤーを非表示にして新しいレイヤーを表示
これは機能しますが、10 秒ごとにデータを取得し続けると、ページが 1 時間開かれると遅延が発生するのではないかと心配です。理由は、オーバーレイが実際には破棄/削除されていないためです。それらはまだメモリ上にあり、それへの参照を失っているだけです (現在、新しいレイヤーへの参照ポイントのため)。
アップデート
オンラインでいくつかの情報を見つけましたが、この実装について心配する必要はないようです。
「Javascript はガベージ コレクションであるため、オブジェクト自体を削除する必要はありません。オブジェクトを参照する方法がなくなった時点で削除されます。」