当前位置: 首页 > 知识库问答 >
问题:

谷歌地图Android搜索位置

师赤岩
2023-03-14

我想让谷歌地图按地址搜索

下面是我的cari.java代码

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class cari extends com.google.android.maps.MapActivity {

       TextView error,pt;
       EditText cm;
       String i,returnStringLancar,stat;
       Geocoder geoCoder;
       GeoPoint p;
       MapController controller;
       MapView map;
        /** Called when the activity is first created. */

       @Override


        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.search);

            pt=(TextView)findViewById(R.id.peta);
            cm=(EditText)findViewById(R.id.cariMap);




       }

       public void clickHandler(View view){
           Intent a = null;
            switch (view.getId()){
            case R.id.show:
                geoCoder = new Geocoder(getApplicationContext(),
                        Locale.getDefault());
                List<Address> addresses;
                try {
                    addresses = geoCoder.getFromLocationName(cm.getText().toString(),5);
                if(addresses.size() > 0)
                {
                     p = new GeoPoint( (int) (addresses.get(0).getLatitude() * 1E6), 
                                      (int) (addresses.get(0).getLongitude() * 1E6));

                       controller.animateTo(p);
                       controller.setZoom(12);

                       MapOverlay mapOverlay = new MapOverlay();
                     List<Overlay> listOfOverlays = map.getOverlays();
                     listOfOverlays.clear();
                     listOfOverlays.add(mapOverlay);

                       map.invalidate();
                       cm.setText("");
                }
                else
                {
                        AlertDialog.Builder adb = new AlertDialog.Builder(cari.this);
                        adb.setTitle("Google Map");
                        adb.setMessage("Please Provide the Proper Place");
                        adb.setPositiveButton("Close",null);
                        adb.show();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                break;
       }
       }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
}
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.os.Bundle;

class MapOverlay extends com.google.android.maps.Overlay
{
    Context context;
    GeoPoint p;
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    {
        super.draw(canvas, mapView, shadow);                   

        //---translate the GeoPoint to screen pixels---
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //---add the marker---
        Bitmap bmp = BitmapFactory.decodeResource(
            context.getResources(), R.drawable.icon);            
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-32, null);         
        return true;
    }
} 
<?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:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android.autoText="true"
    />

<EditText 
android:text="Enter your address" 
android:id="@+id/address" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content">
</EditText>
<Button 
android:text="Search" 
android:id="@+id/launchmap" 
android:layout_width="150px" 
android:layout_height="wrap_content">
</Button>

</LinearLayout>

我想要的是,当我在editText中写出一条街的名字(例如:第1大道1152号),然后按下搜索按钮,它就会在谷歌地图上显示该位置(第1大道1152号)。

当我运行这个程序时,,,它说

“java.lang.RuntimeException:无法实例化activity ComponentInfo{Udin.GoogleMap2/Udin.GoogleMap2.GoogleMap2}:”

“加载器Dalvik.System.PathClassLoader中的java.lang.ClassNotFoundException:Udin.GoogleMap2.GoogleMap2[/system/framework/com.google.android.maps.jar:/data/app/Udin.GoogleMap2-2.apk]”

你能帮我吗?任何帮助我都会感激的

共有1个答案

桓智敏
2023-03-14

检查清单中是否给出了

 类似资料:
  • 所以我看到了一个特殊的例外,我敢肯定的是谷歌地图的绘图代码。 我有一个片段,在那里我以编程方式添加了一个支持地图片段,然后我在其中操纵谷歌地图实例。 这是stacktrace: 我无法可靠地复制它(尽管这种情况经常发生),我已经查看了ReadWriteDirectByteBuffer和ShortToByteBufferAdapter,但没有任何东西突然出现在我面前。 有什么想法吗?

  • 为了更熟悉Android编程,我一直在开发一款位置欺骗软件,我注意到我的应用程序似乎不会欺骗谷歌地图。它适用于Facebook和我测试过的其他一些应用程序,但即使关闭了Wifi和GPS,谷歌地图也知道我的确切位置,而不是我伪造的位置。我从Play Store(FakeLocation)下载了另一个欺骗应用,它似乎也没有欺骗谷歌。 这个人似乎也有同样的问题(Android Mock位置不适用于谷歌地

  • 1)创建新项目。 2)选定的谷歌地图创建。 3)调试google_maps_api.xml所遵循的步骤。 5)AndroidManifest.xml

  • 我想用谷歌地图显示多个位置 为了显示一个我会去https://www.maps.google.com/maps?daddr=20.566645.345 类似于 https://www.maps.google.com/maps?daddr=20.566645.345 这可能来自网址吗?

  • 我正在尝试建立地图应用程序和遵循这个链接一步一步。我在这里找到了类似的话题,但没有帮助我。我想显示地图,但当我运行它,它返回的力量关闭和我的android设备。我看到了很多关于这个错误的问题,但没有人真正回答我的问题。这是我的logcat: 这里是我的mainactivity.java 我已经从下面链接一步一步地阅读了,但是在我的代码中似乎有很多错误。我错过了什么?有什么建议吗?多谢。