人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

「現在地から半径n m(メートル)の場所を同心円で表示する」ウェブアプリを作っているのですが、以下の2)でつまずいてしまい、困っております。ここのURLに解決策のヒントがあるよーという具体的なアドバイスもしくは具体的なコードを教えてください。よろしくお願いいたします。
なお、画像のようなイメージしています。

1)現在地を取得してGoogleMaps上に表示する
2)現在地から半径nのところに同心円を表示する
3)twitter連携 2)でできた地図をツイートできるようにする





1381129725
●拡大する

●質問者: zineriki
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● gizmo5
●50ポイント ベストアンサー

Google のサンプルです。
https://developers.google.com/maps/documentation/javascript/examples/circle-simple

1)現在地を取得してGoogleMaps上に表示する

はできているようなので以下の変数は設定されているはずです。

それを使って以下のような感じで円が書けます。

 var circleOpt = {
 strokeColor: '#000000',
 strokeOpacity: 1,
 strokeWeight: 10, // 太さ(ピクセル)
 fillColor: '#000000',
 fillOpacity: 0,
 map: map, // google.maps.Map
 center: center, // 中心の google.maps.LatLng
 radius: rad // 半径をメートルで
 };
 var circle = new google.maps.Circle(circleOpt);

API のリファレンスです。
https://developers.google.com/maps/documentation/javascript/reference#Circle
https://developers.google.com/maps/documentation/javascript/reference#CircleOptions


牛乳先生(tukihatu)さんのコメント
こんなコードあったんですね、勉強不足でした・・・ http://gmap3.blog52.fc2.com/blog-entry-31.html

zinerikiさんのコメント
ありがとうございます!まさに求めていたものです!

2 ● 牛乳先生(tukihatu)
●50ポイント

できるかやったことないですが、まず一番簡単な方法を。
GMAPのAPIを使うのなら、マーカー画像を変更できるはずです。
おそらくその周辺nメートルに円を書く処理をすると
相当面倒なコードになるでしょう。
そうではなくマーカー自体を円が既についているマーカーにしてしまえばいいのでは?

http://www.nanchatte.com/map/changeMarkerImage.html
こんなイメージ。青丸をもっと広げて、
真ん中に点がある画像を作って置き換えればどうでしょう
(縮尺はmapに書いてあるのでそれを見てサイズをあわせて画像を作るとか)
まあmapの+?でユーザーが大きさ変えられる場合はつらいですけどね。


あと他の方法は、ガッチリプログラムになりますが・・・
考え方として、3)で画像として加工するときに、
トリミングして最終的な画像サイズにするんだと思いますが、
たとえば最終的に300×300の画像の場合、
200×200の円画像を別に用意しておいて画像の左50上50の位置から貼り付けるとか。
ウェブ製作のカテゴリなのでPHPかjavaかC++かそのあたりでしょうけど、
どの言語でもこの手法は有効でしょう。面倒ですが。


画像編集系の操作は複雑だったり、言語によってだいぶ違ったり
ニッチな分野で本もネット情報が乏しいので
ひとつずつ試していくしかないでしょう。
画像編集を使わずAPIの機能だけでできれば一番楽なんですけどね。


質問に書かれてる情報ではこのぐらいしか答えられませんが・・・


zinerikiさんのコメント
ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ