30 Eylül 2012 Pazar

Half a gigameter of biking navigation in 12 countries in Google Maps for Android

To contact us Click HERE

(Cross-posted on the Official Google Blog)
Whether you’re a seasoned century rider or a casual beach cruiser, finding the best biking routes can be a challenge. That’s why today we’re bringing mobile biking directions and navigation to the 10 countries where we launched desktop biking directions last month (Australia, Austria, Belgium, Denmark, Finland, the Netherlands, Norway, Sweden, Switzerland and the UK). Plus, we’re adding turn-by-turn, voice-guided biking navigation to Google Maps Navigation (beta) in every country with biking directions. Mount your device on your handlebars to see the turn-by-turn directions and navigation, or use speaker-mode to hear voice-guided directions.
Turn-by-turn biking navigation in Copenhagen

We know there are lots of ways to get from here to there, which is why in 2010 we added biking directions to Google Maps in the U.S. and Canada, and continue to work to bring more biking features to more places. Today, there are more than 330,000 miles (equal to more than 530,000 kilometers, or half a gigameter) of green biking lines in Google Maps. Dark green lines on the map show dedicated bike trails and paths with no motor vehicles, light green lines show streets with bike lanes and dashed green lines show other streets recommended for cycling. Biking navigation even helps you avoid steep hills.
Bike layer showing recommended streets for cycling in Stockholm

Where Map Maker and biking directions are both available, riders can add bike trails, lanes and suggested routes to Google Maps, helping to create a more comprehensive map for everyone living in or visiting their community. Thanks to the contributions of members of the biking community like Todd Scott and our partnership with nonprofits like Rails-to-Trails Conservancy, we’ve added bike data for hundreds of cities and trails to Google Maps in the past two-and-a-half years.

When you’re pedaling from Point A to Point B, we hope biking navigation will make Google Maps for Android more useful to you.


Posted by Larry Powelson, Software Engineer, Google Maps

Google Maps Roundup: From Canada to Latin America to Europe, August was a busy month!

To contact us Click HERE

We’re always working to make Google Maps even more comprehensive, accurate and useful. This month, we’ve crisscrossed the globe gathering more imagery, expanding features and growing our Map Maker community. In case you missed it, here are a few Google Maps highlights from August:

Explore amazing places with new Street View imagery
We recently released Street View imagery for more places around the world, making Google Maps even more comprehensive, including:

  • 6,000 panoramic views in and around NASA’s Kennedy Space Center, enabling space enthusiasts around the world to walk in the footsteps of astronauts.
  • More than 70 cities in Brazil and 30 Mesoamerican archaeological sites in Mexico.
  • Stay tuned for imagery from Cambridge Bay, a tiny hamlet in Canada’s Arctic, where the Street View team is collecting imagery with the trike.

Get around more easily with the help of Google Maps

With enhanced directions, transit information and traffic data, Google Maps can help you get where you want to go more quickly. 
  • We added turn-by-turn, voice-guided biking navigation to Google Maps Navigation (Beta) in 12 countries--more than 330,000 miles of biking directions are now available.
  • For those of you taking public transportation, Google Maps now has public transportation schedules for more than one million transit stops worldwide in nearly 500 cities, including New York, London, Tokyo and Sydney.
  • To make it easier for you to travel by car, we launched real-time traffic conditions for more than 130 cities in the U.S., plus the capital cities of Colombia, Costa Rica, and Panama.

Contribute your local knowledge to Google Maps
Volunteer mappers can improve the accuracy and detail of the maps of their countries.
  • Our community mapping tool, Google Map Maker, became available in Ukraine and Poland, joining more than 200 other countries and regions where Map Maker is already available.

Posted by Brian McClendon, VP Google Maps and Earth

Making exploration easier for people around the world with Google Maps

To contact us Click HERE

Maps keep our spirit of adventure alive by making it easier for us to explore the world around us. That’s why today, we’re making Google Maps even better with new turn-by-turn navigation with traffic conditions, biking directions, Map Maker and new Street View imagery in more locations globally. These improvements are part of our ongoing effort to build the best map we can -- one that’s comprehensive, accurate and easy for you to use.

First, we’re expanding Google Maps Navigation (Beta) with voice guided, turn-by-turn directions in thousands of towns across India. Navigation is one of the most frequently requested features in this region and can be especially helpful when driving in densely populated cities like Delhi or Bangalore. We’re also adding live traffic conditions for major roads with estimated travel times to help you save time and to reduce stress on the road.

Turn-by-turn voice navigation in New Delhi, India

Biking directions and Map Maker are also now rolling out to New Zealanders. Local cyclists can access biking directions directly on Google Maps, and use Map Maker to add bike lanes and trails if their favorite route is missing or they discover a new one. Beyond biking trails, Map Maker can also be used to make the New Zealand map more accurate with details such as new road names, building footprints and more.

Biking directions from Remuera in Auckland to the local Google office

Later today, we’ll also release new Street View imagery for more than 150 university campuses globally. With classes just getting started, freshman students, transfers and even empty-nesting parents can now familiarize themselves with college campuses around the world, including UCLA in the U.S., Pembroke College in the U.K., McGill University in Canada and Sophia University in Japan. These new panoramic views join our growing list of universities whose campuses are already available in Google Maps.


View Larger Map
Royce Hall at the University of California, Los Angeles

Finally, to celebrate all the places you can reach with Google Maps—all seven continents, the sky, the moon and even the depths of the ocean—we made a video that we hope will inspire you to keep exploring.


Keep exploring at maps.google.com/helloworld. Here’s to many new adventures.

Imagery Update: Explore more of the world in high-resolution

To contact us Click HERE

Improving the availability of more high quality imagery is one of the many ways we’re continuing to bring you the most comprehensive and accurate maps of the world. In this month’s update, you’ll find another extensive refresh to our high resolution aerial and satellite imagery (viewable in both Google Maps and Google Earth), as well as new 45 degree imagery in Google Maps spanning 30 new cities.

New high resolution aerial and satellite imagery:

Google Maps and Earth now feature updated aerial imagery for more than 20 locations, and updated satellite imagery for more than 60 regions. Here are a few interesting locations included in our latest release.

Below is imagery of Mecca, Saudi Arabia where each year more than 15 million Muslims visit this important religious site. Here you can see Abraj Al Bait, one of the world largest clock towers, visible even from space!


Abraj Al Bait is the world’s largest clock face
On the opposite side of the globe, baseball season in the United States is in full swing and fans can’t get enough. Below is an aerial image of Coca-Cola Park in Pennsylvania, home of the Lehigh Valley IronPigs, a minor league affiliate of the Philadelphia Phillies.


Coca-Cola Park in Allentown, Pennsylvania
New 45° imagery available for 30 cities:

In addition, this month’s Google Maps update includes 45° imagery coverage for 23 U.S. cities and 7 international locations. Below are some highlights from Bordeaux, France and Cincinnati, Ohio.

Bordeaux is a major city in southwestern France, located roughly 45 kilometers from the Atlantic Ocean. It is especially famous for its wine and cuisine, and the image below shows the Gothic style Saint-André Cathedral.



Bordeaux, France - View Larger Map
Cincinnati, Ohio, was the first major inland city in the United States known for its large collection of historic architecture . Below is the Over-The-Rhine neighborhood, which exemplifies the historic Italianate Architecture that can be found throughout Cincinnati.



Cincinnati, Ohio - View Larger Map
Below is the full list of cities boasting new or updated imagery.

Cities with new high resolution 45° imagery:
United States: Bend, OR; Bloomington, IN; Buffalo, NY; Cincinnati, OH; Columbus, IN; Columbus, OH; Conway, SC; Evansville, IN; Fort Wayne, IN; Gastonia, NC; Hamilton, OH; Indianapolis, IN; Jackson, TN; Joliet, IL; Kokomo, IN; Lincoln, NE; Louisville, KY; Mankato, MN; Muncie, IN; Owensboro, KY; Palm Valley, FL; Rochester, MN; Wilmington, NC.
International: Béziers, France; Bordeaux, France; Lille, France; Marseille, France; St. Etienne, France; Platja d'Aro, Spain; Blanes, Spain.

Areas with new high resolution aerial imagery:
United States: Centralia WA, Tillamook OR, Salem OR, Dos Rios CA, Mount Shasta area CA, Lassen area CA, Joshua Tree area CA, Ely NV, Elko NV, Las Vegas NV, Lander WY, Onawa IA, Ames IA, Perry IA, Bolivar MO, Mountain Grove MO, Rolla MO, Coldwater KS, Spearman TX, Hereford TX, San Antonio TX, Tyler TX, Lafayette LA, Huntsville AL, Waycross GA, Palatka FL, Fort Pierce FL, Allentown PA
Portugal: Torre de Coelheiros
Spain: Baiona, Ourense, Torrelavega, San Sebastian, Pamplona, Nulles, Guadassuar, San Miguel de Salinas, Castellar de la Frontera, Los Palacios y Villafranca, Bailen
France: Bordeaux, Montpellier, Lyon, Dijon, Grenoble
Italy: Livorno, Rome, Catania
Switzerland: Montreux, Neuchatel, Zurich
England: Olympic Park
Germany: Munich, Heidelberg, Flieden, Alsfeld,
Austria: Salzburg

Areas new high resolution satellite updates:
USA, Greenland, Mexico, Colombia, Venezuela, Brazil, Bolivia, Paraguay, Argentina, Antarctica, South Africa, Namibia, Zimbabwe, Mozambique, Zambia, Angola, Democratic Republic of the Congo, Uganda, Kenya, Central African Republic, Cameroon, Ethiopia, Burkina Faso, Guinea, Algeria, Morocco, Western Sahara, Egypt, Saudi Arabia, Syria, Greece, Macedonia, Bulgaria, Romania, Ukraine, Bosnia and Herzegovina, Croatia, Hungary, Poland, Belarus, Lithuania, Estonia, Russia, Khazakhstan, Uzbekistan, Iran, Pakistan, India, Nepal, Bhutan, China, Myanmar, Thailand, Cambodia, North Korea, South Korea, Japan, Philippines, Indonesia, Papua New Guinea, Australia, New Zealand

If you’d like to receive an email notification when imagery for the areas you care about are updated, check out the Follow Your World tool. Enjoy the new sites!

Update (9/7): Satellite and aerial image mentioned is currently available in Google Earth only and will be coming to Google Maps shortly. 

Google Maps Coordinate Grants announced at Geo for Good User Summit

To contact us Click HERE

On the Google Earth Outreach team, we’re very lucky to work with organizations around the world who are practicing “Geo for Good:” using maps to help make the world a better place. We’ve worked with organizations that save elephants in Africa, clear landmines around the world and protect our coastlines. As part of our ongoing support for non-profits that use Google mapping tools to help change the world, we hosted the Geo for Good User Summit this week at our Google headquarters in Mountain View.

85 nonprofit organizations attended this week’s Summit -- old partners and new -- spanning the globe from the Galapagos to the Appalachian Mountains of the United States to the forests of Sumatra, and working on a range of issues such as conservation, humanitarian relief and cultural preservation. They received hands-on training of all the new mapping tools that Google makes available to users around the world, including Google Maps Engine, Google Earth Engine and Google Earth Enterprise Portable Solution.


Brian McClendon, VP Google Maps and Google Earth, addressing the Geo for Good attendees
As part of our event this week, we also announced the latest addition to our Google Earth Outreach Grants program: Google Maps Coordinate. Google Maps Coordinate is a workforce management tool that allows organizations to quickly and easily assign jobs to field workers, improving operational efficiency and communication. We’re looking forward to helping non-profits use Google Maps Coordinate to do things like deploy urban forestry teams, urban car-sharing services, or mobile health workers to conduct surveys in villages. Eligible non-profits in the U.S., U.K. and Canada are welcome to apply for a Google Maps Coordinate grant today.


29 Eylül 2012 Cumartesi

Create a Circle in Andrind

To contact us Click HERE
In this Ariticle helps to create a circle in andriod using

Create a Customized View Class
public class Ball extends View {}

Override the onDraw()
protected void onDraw(Canvas canvas) { }

Create Paint Object for draw the circle
mPaints1 = new Paint();
        mPaints2 = new Paint();
        mPaints1.setAntiAlias(true);
        mPaints1.setStyle(Paint.Style.FILL);

        mPaints2 = new Paint(mPaints1);
        mPaints2.setColor(Color.BLUE);
        mBigOval = new RectF(40, 10, 280, 250);

Draw Circle using drawArc
canvas.drawArc(oval, mStart, mSweep, useCenter, paint);


SourceCode

public class Ball extends View {

    private Paint mPaints2;
    private Paint mPaints1;
    private RectF mBigOval;
    private float mStart, mSweep;
    private int mBigIndex;

    public Ball(Context context) {
        super(context);

        mPaints1 = new Paint();
        mPaints2 = new Paint();
        mPaints1.setAntiAlias(true);
        mPaints1.setStyle(Paint.Style.FILL);

        mPaints2 = new Paint(mPaints1);
        mPaints2.setColor(Color.BLUE);
        mBigOval = new RectF(40, 10, 280, 250);
    }

    private void drawArcs(Canvas canvas, RectF oval, boolean useCenter,
            Paint paint) {
        canvas.drawArc(oval, mStart, mSweep, useCenter, paint);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawColor(Color.WHITE);
        drawArcs(canvas, mBigOval, true, mPaints2);
        mSweep += 2;
        if (mSweep > 360) {
            mStart += 10;
            if (mStart >= 360) {
                mStart -= 360;
            }
            mBigIndex = (mBigIndex + 1);
        }
        invalidate();
    }
}


Sample Rating Bar Implementation

To contact us Click HERE
A RatingBar is an extension of SeekBar and ProgressBar that shows a rating in stars.

The user can touch/drag or use arrow keys to set the rating when using the default size RatingBar.

The smaller RatingBar style and
the larger indicator-only style do not support user interaction and should only be used as indicators.


larger indicator-only    -    style="?android:attr/ratingBarStyleIndicator"
smaller RatingBar     -    style="?android:attr/ratingBarStyleSmall"
Default            -    style="?android:attr/ratingBarStyle"


Sample Handler Implementation

To contact us Click HERE
Handler is a verry useful and powerful component in Android. Some special features of Handler are,

     If handler is created without any parameter, then it will be created in the same thread itself.
     We can pass data to handler using message

I have created the below sample application, which is using handler efficiently. Increment the count for one second.

So if we need to create a seperate thread for handler, first we need to create a thread and create the handler inside it.

MainActivity
public class MainActivity extends Activity {
    TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.TextView01);
        new Thread() {
            public void run() {
                int i = 0;
                while (i <= 100) {
                    try {
                        sleep(1000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    messageHandler.sendMessage(Message
                            .obtain(messageHandler, i));
                    i++;
                }
            }
        }.start();
    }
    private Handler messageHandler = new Handler() {
        public void handleMessage(Message msg) {
            tv.setText(msg.what + "");
        }
    };
}


Main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:textSize="25dip" android:layout_gravity="center"
    android:layout_marginTop="150dip"></TextView>
</LinearLayout>



Android 2D Graphics Example

To contact us Click HERE
This example shows how to use onDraw() method and create a simple drawing program. The only significant files are Draw activity and the DrawView.

MainActivity.java
public class MainActivity extends Activity { 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);      
        DrawView drawView = new DrawView(this);
        setContentView(drawView);
        drawView.requestFocus();
    }
}


public class DrawView extends View {
    Paint paint = new Paint();
    Context c;
    public DrawView(Context context) {
        super(context);
        c= context;    
        paint.setColor(Color.WHITE);
        paint.setAntiAlias(true);
    }

    @Override
   public void onDraw(Canvas canvas) {
            canvas.drawCircle(100, 100, 50, paint);
    }
}
}


2D graphics with Effects

To contact us Click HERE
In this article help us to set the different type of effect in the drawable.

Effects

Shadow Effect
This draws a shadow layer below the main layer, with the specified offset and color, and blur radius.


MaskFilterEffect
MaskFilter is the base class for object that perform transformations on an alpha-channel mask before drawing it. A subclass of MaskFilter may be installed into a Paint. Blur and emboss are implemented as subclasses of MaskFilter.

Sample Implementation:
Blur Filter
paint.setMaskFilter(new BlurMaskFilter(15, Blur.INNER));
paint.setMaskFilter(new BlurMaskFilter(15, Blur.OUTER));
paint.setMaskFilter(new BlurMaskFilter(15, Blur.SOLID));
paint.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL));

Emboss Filter
paint.setMaskFilter(new EmbossMaskFilter(new float[] { 1, 1, 1 },0.4f, 10, 8.2f));

Shader Effect
Shader is the based class for objects that return horizontal spans of colors during drawing. A subclass of Shader is installed in a Paint calling paint.setShader(shader). After that any object (other than a bitmap) that is drawn with that paint will get its color(s) from the shader.

Shader Sample Implementation:
LinearGradient
paint.setShader(new LinearGradient(8f, 80f, 30f, 20f, Color.RED,Color.WHITE, Shader.TileMode.MIRROR));

RadialGradient
paint.setShader(new RadialGradient(8f, 80f, 90f, Color.RED,Color.WHITE, Shader.TileMode.MIRROR));

SweepGradient
paint.setShader(new SweepGradient(80, 80, Color.RED, Color.WHITE));



Sample Apps
Layout : main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

<LinearLayout android:id="@+id/ImageView01" android:layout_height="150dip" android:layout_width="150dip"
android:layout_gravity="center"></LinearLayout>
<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center">
<Button android:text="Draw Cicle" android:id="@+id/circle"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Anti Alias" android:id="@+id/antialias"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Shadow" android:id="@+id/shadow"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
</LinearLayout>

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center">
<Button android:text="Blur Effect - 1" android:id="@+id/blur1"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Blur Effect - 2" android:id="@+id/blur2"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Blur Effect - 3" android:id="@+id/blur3"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
</LinearLayout>

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center">
<Button android:text="Blur Effect - 4" android:id="@+id/blur4"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Emboss" android:id="@+id/emboss"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
</LinearLayout>

<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center">
<Button android:text="Sweep" android:id="@+id/sweep"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Linear" android:id="@+id/linear"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
<Button android:text="Radial" android:id="@+id/radial"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="85dip" android:gravity="center"></Button>
</LinearLayout>
</LinearLayout>


MainActivity.java

public class MainActivity extends Activity implements OnClickListener {

LinearLayout imageView;
Button circle, antialias, shadow, blur1, blur2, blur3, blur4, emboss,
sweep, radial, linear;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
imageView = (LinearLayout) findViewById(R.id.ImageView01);
circle = (Button) findViewById(R.id.circle);
antialias = (Button) findViewById(R.id.antialias);
shadow = (Button) findViewById(R.id.shadow);
blur1 = (Button) findViewById(R.id.blur1);
blur2 = (Button) findViewById(R.id.blur2);
blur3 = (Button) findViewById(R.id.blur3);
blur4 = (Button) findViewById(R.id.blur4);

emboss = (Button) findViewById(R.id.emboss);
sweep = (Button) findViewById(R.id.sweep);
linear = (Button) findViewById(R.id.linear);
radial = (Button) findViewById(R.id.radial);

circle.setOnClickListener(this);
antialias.setOnClickListener(this);
shadow.setOnClickListener(this);
blur1.setOnClickListener(this);
blur2.setOnClickListener(this);
blur3.setOnClickListener(this);
blur4.setOnClickListener(this);
emboss.setOnClickListener(this);
sweep.setOnClickListener(this);
linear.setOnClickListener(this);
radial.setOnClickListener(this);

}

@Override
public void onClick(View v) {
imageView.removeAllViews();
switch (v.getId()) {
case R.id.circle:
imageView.addView(new DrawView(MainActivity.this));
break;
case R.id.antialias:
imageView.addView(new DrawView(MainActivity.this).getAntiAlias());
break;
case R.id.shadow:
imageView
.addView(new DrawView(MainActivity.this).getShadowEffect());
break;
case R.id.blur1:
imageView.addView(new DrawView(MainActivity.this)
.getBlurMaskFitler(1));
break;
case R.id.blur2:
imageView.addView(new DrawView(MainActivity.this)
.getBlurMaskFitler(2));
break;
case R.id.blur3:
imageView.addView(new DrawView(MainActivity.this)
.getBlurMaskFitler(3));
break;

case R.id.blur4:
imageView.addView(new DrawView(MainActivity.this)
.getBlurMaskFitler(4));
break;
case R.id.emboss:
imageView.addView(new DrawView(MainActivity.this)
.getEmbossMaskFilter());
break;
case R.id.sweep:
imageView.addView(new DrawView(MainActivity.this)
.getSweepShaderEffect());
break;
case R.id.linear:
imageView.addView(new DrawView(MainActivity.this)
.getLinearShaderEffect());
break;
case R.id.radial:
imageView.addView(new DrawView(MainActivity.this)
.getRadialShaderEffect());
break;

}

}

public class DrawView extends View {
Paint paint = new Paint();
Context c;
final float xPos = 80, yPos = 80, radius = 40;

public DrawView(Context context) {
super(context);
c = context;
paint.setColor(Color.WHITE);
invalidate();
}

private View getAntiAlias() {

paint.setAntiAlias(true);
return this;
}

private View getShadowEffect() {
paint.setAntiAlias(true);
paint.setShadowLayer(10, 10, 5, Color.RED);
return this;
}

private View getBlurMaskFitler(int type) {
invalidate();
paint.setAntiAlias(true);
switch (type) {
case 1:
paint.setMaskFilter(new BlurMaskFilter(15, Blur.INNER));
break;
case 2:
paint.setMaskFilter(new BlurMaskFilter(15, Blur.OUTER));
break;
case 3:
paint.setMaskFilter(new BlurMaskFilter(15, Blur.SOLID));
break;
case 4:
paint.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL));
break;
}
return this;
}

private View getEmbossMaskFilter() {
paint.setAntiAlias(true);
paint.setMaskFilter(new EmbossMaskFilter(new float[] { 1, 1, 1 },
0.4f, 10, 8.2f));
return this;
}

private View getSweepShaderEffect() {
paint.setAntiAlias(true);
paint.setShader(new SweepGradient(80, 80, Color.RED, Color.WHITE));
return this;
}

private View getRadialShaderEffect() {
paint.setAntiAlias(true);
paint.setShader(new RadialGradient(8f, 80f, 90f, Color.RED,
Color.WHITE, Shader.TileMode.MIRROR));
return this;
}

private View getLinearShaderEffect() {
paint.setAntiAlias(true);
paint.setShader(new LinearGradient(8f, 80f, 30f, 20f, Color.RED,
Color.WHITE, Shader.TileMode.MIRROR));
return this;
}

@Override
public void onDraw(Canvas canvas) {
canvas.drawCircle(xPos, yPos, radius, paint);
}
}
}

28 Eylül 2012 Cuma

Explore the Forefront of Japanese Space Science with Google Maps

To contact us Click HERE

September 12th is “Space Day” in Japan, and we are celebrating by releasing new, comprehensive Street View imagery for two of Japan’s top scientific institutions: the Japan Aerospace Exploration Agency (JAXA) and the National Museum of Emerging Science and Innovation (Miraikan). With panoramic imagery in and around these locations now available via the Street View feature of Google Maps, space enthusiasts around the world have a more complete and accurate sense of what it’d be like to virtually swap places with an astronaut.

The JAXA imagery allows you to walk through the Tanegashima Space Center (TNSC) down on the idyllic beach island of Tanegashima. TNSC is the site from which the Kounotori 3 rocket recently lifted off to send supplies (and the YouTube Space Lab winning experiments) to the International Space Station. You can start your tour of the TNSC facilities with a look inside the Space Science Technology Museum at the Southern tip of the island, and then a peek in the nearby Control Room.



Space Science Technology Museum
Next, check out the launch pad with the huge open areas and launch tower.



Launch Pad
Beyond the TNSC, you can also explore the immersive imagery from the JAXA facilities at Tsukuba Space Center, Sagamihara Campus, Chofu Air and Space Center, Earth Observation Center, Usuda Outer Space Observatory, and the Uchinoura Space Center.

In addition, today’s release also includes 360-degree views of the National Museum of Emerging Science and Innovation, known in Japan as the “Miraikan.” Now, you’re able to virtually walk inside the museum and see the famous “Geo Cosmos” hanging Earth model, as well as the other permanent exhibits like the model of the International Space Station.



Geo Cosmos
We thank JAXA and the Miraikan for working with us to collect and share the new Street View imagery for these breathtaking and important sites of space innovation and technology. We hope the imagery on Google Maps brings the science of outer space much closer to people around the world.



Elephants in Peril

To contact us Click HERE

Editor’s note: Today’s guest authors are Rob Heittman from Solertium, Inc., a technical development company and Iain Douglas-Hamilton, founder of Save the Elephants, based in Kenya. Save the Elephants was the recipient of a Google Earth Outreach Developer Grant, funded through the Google Inc. Charitable Giving Fund at the Tides Foundation. We’re hoping that mapping data patterns over time will shed much-needed light on the recent dramatic increase in poaching of elephants in Africa.

History is currently repeating itself in a quite unpleasant way.

Once again, as we did in the 1970s and 1980s, we are seeing previously tranquil elephants affected by huge surges in the illegal killing of elephants for ivory. We know, from past experience, that this ivory rush is fueled by a sudden increase in demand: new prosperity in Asian markets, where ordinary people can suddenly afford to buy ivory. After a relative respite since the 1989 ivory trade ban, I am sad to report that elephants are once again in peril.

Murembo, a bull elephant, from Tsavo National Park, Kenya Photo Credit: Johan Marais
Save The Elephants operates a research camp in Samburu, Kenya; a very special place. The elephants there are protected by law, the ceaseless efforts of the Kenya Wildlife Service, local stakeholders, and amazing technology that helps secure their future. Within Samburu -- and other places in Africa -- we provide a tracking system which uses GPS radio collars to monitor the movements of elephants in near real time. Using Google Earth and our new, lightweight mobile apps, our team can be deeply knowledgeable about the Samburu elephants, and share data with the guardians to come to their aid if needed. Alerts tell us when unusual conditions occur. The most serious alert concerns immobility. This too often means another poaching incident, and another elephant's life lost to runaway demand for ivory.


Save the Elephants’ private Android and iOS apps allow for real-time elephant tracking, alerting rangers to elephants movements and poaching incidents.
We believe the ivory poaching we're seeing is a microcosm of what is going on across Africa. This past year, especially, there have been a series of massacres, for example, one in Cameroon in which almost an entire population was wiped out with automatic weapons.


Just 10 years ago, the areas in red, where illegal elephant killing is peaking, were showing healthy or stable elephant populations in green. Explore the changes over time in the timelapse feature.  Since 2008, major deterioration set in.
The other necessary part of the solution is to reduce the demand. Here, technology can also be a powerful ally. We are now using new Google technologies to bring the same level of awareness to anyone with a Web browser. With our most recent initiative, the Elephants in Peril site (http://www.elephantsinperil.org), we have turned to Fusion Tables and Google Maps Engine to do two important things. First, we are working to bring together public data sets, often buried in boring official reports, to reveal the complete story of elephant populations over time, map them out, and understand what trends can be seen. Second, we aim to share the real, unvarnished scientific data from whatever sources in a citable, and highly usable form.

As long as elephants continue to be threatened by surging ivory demand, we want Elephants in Peril to become a reliable source, whether a visitor wants to learn about the problem, write, tell about it, or take steps to help solve it. Google's simple data publishing and visualization tools make it possible for us to undertake this effort and reach a larger audience than would otherwise be possible.


elephantsinperil.org map shows main populations left in Africa with green being high density and red being low density.
We are in a race with the poachers; a race we have to win. Google Earth, Google Maps Engine, and Fusion Tables give us the advantage of speed. Already, we have used the system to share results with the media, and save weeks or months in achieving publicity. Later this year, we will publish original research that helps to tie our findings in Samburu to the challenges across the African continent, using the site to engage concerned individuals, NGOs and governments. In future, we look forward to translating the site into Chinese to improve its utility as a resource in Asia.

Google Earth Outreach and the Tides Foundation have made our mobile apps and Elephants in Peril possible. We welcome the assistance of any concerned Google developers or users. Please visit our website; even better, visit us in Africa if you can, and give us your ideas to help us win this race.

Posted by Dr. Iain Douglas-Hamilton, Founder of Save the Elephants, and Rob Heittman, CTO of Solertium, Inc.