/**
 * 同心円作成クラス
 */
var GJnCircleMapManager = Class.create();
GJnCircleMapManager.prototype = {
    initialize: function(map, markers, options) {
        this.map = map;
        this.markers = new Array();
    },
    
	createCircle : function(map) {
        var lat = this.map.getCenter().lat();
        var lon = this.map.getCenter().lng();
        
        var point = new GLatLng(lat, lon);
        var radius = 160;
        
        for (var i = 1; i < 6; i++) {
            var polygon = this._create(point, radius * i,'#E33C55', 1, 1);
            this.map.addOverlay(polygon);
            this.markers.push(polygon);
        }
        return this.markers;
	},
	
    _create : function(point, radius, color, weight, opacity) {
      var vertex = 60;               
      var er = 6378137;
      var F = 298.257223563;
      var E = ((2 * F) -1) / Math.pow(F, 2);
      var PI_ER = Math.PI * er;
      var TMP = 1 - E * Math.pow(Math.sin(point.latRadians()), 2);
      var arc_lat = (PI_ER * (1 - E)) / (180 * Math.pow(TMP, 3/2)); 
      var arc_lng = (PI_ER * Math.cos(point.latRadians())) / (180 * Math.pow(TMP, 1/2)); 
      var r = radius;
      var points = new Array(vertex);
      for (i = 0; i <= vertex; i++) {
        var rad = (i / (vertex / 2)) * Math.PI;
        var lat = (r / arc_lat) * Math.sin(rad) + point.lat();
        var lng = (r / arc_lng) * Math.cos(rad) + point.lng();
        points[i] = new google.maps.LatLng(lat, lng);
      }
      return new google.maps.Polyline(points, color, weight, opacity);
    }
};
