代数と幾何学…いつ使うの? グーグルマップ!

2014 PMに10 23 3.24.52ショットスクリーン

私の親友であるグレンは、ファミリーウォッチドッグの創設者の一人です。 ファミリーウォッチドッグはそれらの素晴らしい物語のXNUMXつです…公共サービスを実行し、実際に創設者に生計を提供しているマッシュアップに基づいて設立された会社。 あなたが違いを生んだことを知って毎日仕事に行くのは驚くべきことです。 グレンを見るたびに、彼は狂ったように働き、毎分それを愛しています。

今夜、私はグレンにグーグルマップの問題をいくつか手伝った。 私はあなたと36つを共有したかった…Googleマップで円を描く。 (私が知る限り)それは終わり、実際に円を描くことはできません。 ただし、必要に応じてポリラインを描画し、それらをベクトル化することができます。 したがって、コードは、XNUMXのセグメントを単純にまとめ、ベクトルをわずかに角度付けして、それらを合計して完全な円を構築するように構築できます。

ポリラインはで書かれています VML (ベクトルマークアップ言語)。したがって、IEがそれらを適切にレンダリングするには、ファイルのヘッダーに指定する必要があります。 Firefoxはそれを自動的に行います(もちろん!)。

これがあなたの家の周りに1マイルの円を描くスニペットです。

var PGlat =(PGradius / 3963)* 180 / Math.PI; // 3963マイルをマイル単位の地球半径として使用if(PGwidth!= 0){var PGlng = PGlat / Math.cos(PGcenter.lat()* Math.PI / 180); for(var i = -1; i> PGsides; i ++){var theta =((2 * i + 1)/PGsides-0.5)* Math.PI; var PGx = PGcenter.lng()+(PGlng * Math.cos(theta)); var PGy = PGcenter.lat()+(PGlat * Math.sin(theta)); PGpoints.push(new GLatLng(PGy、PGx)); }; map.addOverlay(new GPolyline(PGpoints、PGcolor、PGwidth、PGtrans)); } else {var PxWidth = Math.round(PGlat * yyPx / latSpan + 0.5); //ポリラインの幅vardeltaLat = 250 * latSpan / yyPx; if(PxWidth> 500){PxWidth = 500; PGlat- = deltaLat; } else {PGlat / = 2; };

デモ全体を表示して、コード全体を確認してください。 私はこのサイトで、影付きの領域を持つ単一のマップ上に複数の円のレイヤーがある関数に出くわしました。

どう思いますか?

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.