質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3271閲覧

Google Mapの現在地とKMLの読み込みを同時に行なうと地図の中心がKMLのデータになってしまう

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2016/03/11 03:37

Google Map Javascript Api を利用し、KMLファイルでレイヤーの読み込みを行なっていますが、現在地表示との連動がうまくいかないので、質問させてください。

・やりたいこと
KMLでレイヤーを表示。その上で、現在地を取得して現在地を中心にマップを開く

・今の状態
KMLファイルの中心地でマップが開く。

それぞれを単体で処理した場合、正しく処理できています。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
現在地のみの取得 → 現在地で表示される
KMLファイルの読み込み → KMLレイヤーの中心地で表示される。

しかしながら、2つの処理を同時に行なった場合は、KMLの処理が優先されているようです。

KMLレイヤーの中心地と、現在地の情報取得で処理をバッティングさせないやりかたはないでしょうか。

よろしくお願いします。

以下、ソースです。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
initialize();

function initialize() {
var latlng = new google.maps.LatLng(35.60349, 140.06912);
var opts = {
noClear : true,
zoom : 12,
center : latlng,
mapTypeId : google.maps.MapTypeId.ROADMAP
};

map = new google.maps.Map(document.getElementById("map_canvas"), opts); var kml = "http://path/to/file.kml"; var kmlLayer = new google.maps.KmlLayer(kml); kmlLayer.setMap(map); navigator.geolocation.getCurrentPosition(successCallback, errorCallback); function successCallback(position) { now_lat = position.coords.latitude; now_lng = position.coords.longitude; var latlng = new google.maps.LatLng(now_lat, now_lng); map.setCenter(latlng); var marker = new google.maps.Marker({position:latlng}); marker.setMap(map); } function errorCallback(error) { // error }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サンプル
https://developers.google.com/maps/documentation/javascript/examples/layer-kml

preserveViewport のオプションを true にすると、KMLにズームされずに、初期位置のままです。

修正後

JavaScript

1 var ctaLayer = new google.maps.KmlLayer({ 2 url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml', 3 map: map, 4 preserveViewport: true 5 });

投稿2016/03/11 07:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/11 09:33

terion 様 早速のご回答ありがとうございます。感謝です。 おかげさまで解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問