我正在开发一个与Google地图相关的应用程序.我是谷歌地图的初学者.
我想做一个在我当前位置显示Pin的应用程序.当我点击该引脚时,它会显示包含我当前地址的对话框."Pin是可移动的".当我在Google地图上将图钉从一个位置移动到另一个位置时,对话框会显示该位置的地址.
所以请给我想法或参考网站.
我正在使用Android的WebView组件来显示带有POI的Google地图.为了显示POI,我使用的是JavaScript API类google.maps.Marker.
问题是,当地图上显示所有350个POI时,它们使WebView变得缓慢且几乎无法使用......
如何优化???
是否有任何API,例如将地图缩放级别与显示的标记数量放在一起?例如,如果缩放级别为0,例如显示10个POI,并且当缩放级别为10时,将显示所有适合视图端口的POI ...
感谢您的帮助,问候,彼得
android google-maps google-maps-api-3 android-maps android-webview
我已成功添加引脚但我需要刷新引脚,当用户点击地图并提供新位置时,我收到错误.请记住,我需要在后台进行此操作,以免影响地图交互.
我的问题是,当用户点击地图时,地图引脚列表已经更新,我收到ConcurrentModificationException错误.
基本上,我有一个JSONArray位置.我需要每个位置都在地图上,当触摸新位置时,更新引脚并清除旧引脚.
关于如何使这更友好和更容易的任何建议.我似乎无法摆脱ConcurrentModificationException错误.
我正在使用此方法在我的应用程序中在地图上的两个点之间绘制路线
private void DrawPath(GeoPoint src, GeoPoint dest, int color,
MapView mMapView01) {
// connect to map web service
StringBuilder urlString = new StringBuilder();
urlString.append("http://maps.google.com/maps?f=d&hl=en");
urlString.append("&saddr=");//from
urlString.append( Double.toString((double)src.getLatitudeE6()/1.0E6 ));
urlString.append(",");
urlString.append( Double.toString((double)src.getLongitudeE6()/1.0E6 ));
urlString.append("&daddr=");//to
urlString.append( Double.toString((double)dest.getLatitudeE6()/1.0E6 ));
urlString.append(",");
urlString.append( Double.toString((double)dest.getLongitudeE6()/1.0E6 ));
urlString.append("&ie=UTF8&0&om=0&output=kml");
Log.d("xxx","URL="+urlString.toString());
try
{
URL url = new URL(urlString.toString());
urlString = null;
HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(urlConnection.getInputStream());
if(doc.getElementsByTagName("GeometryCollection").getLength()>0)
{
String path = doc.getElementsByTagName("GeometryCollection").item(0).getFirstChild().getFirstChild().getFirstChild().getNodeValue() ;
Log.d("xxx","path="+ path);
String …Run Code Online (Sandbox Code Playgroud) 我试图将MapView插入到Fragment中但是我找不到将MapView对象强制转换为的正确类.
我MapView像这样插入我的片段.
<com.google.android.gms.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map_view_track"/>
Run Code Online (Sandbox Code Playgroud)
但是,我不可避免地得到了一个ClassCastException.
是否可以这样插入MapView?我很确定它是.
我正在使用Google Maps for Android v2.我想显示当前用户位置并放大它.这是以下代码FragmentActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_activity);
mMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.mapFragment_mapActivity)).getMap();
if (mMap == null) {
Toast.makeText(this, R.string.mapCreationProblem, Toast.LENGTH_LONG)
.show();
finish();
return;
}
mMap.setMyLocationEnabled(true);
Location currentLocation = mMap.getMyLocation();
if(currentLocation!=null){
LatLng currentCoordinates = new LatLng(
currentLocation.getLatitude(),
currentLocation.getLongitude());
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentCoordinates, 10));
}
}
Run Code Online (Sandbox Code Playgroud)
地图工作正常,当前位置的蓝点也可以工作.但似乎currentLocation总是空的.所以我无法放大当前位置.
谁知道为什么,拜托?
我正在使用Google API for android.我写了这一行:
GeoPoint point = new GeoPoint(234120, 4885693);
Run Code Online (Sandbox Code Playgroud)
我更改了项目的属性并包含了Google API.这是我的清单文件:
<application
android:name=".Test"
<uses-library
android:name="com.google.android.maps"
android:required="true" />
<activity
android:name=".Main"
Run Code Online (Sandbox Code Playgroud)
错误是:
07-09 15:28:10.046: E/AndroidRuntime(7248): Caused by: java.lang.NoClassDefFoundError: com.google.android.maps.GeoPoint
Run Code Online (Sandbox Code Playgroud) 在我的Android应用程序中,我试图计算两个位置之间的距离,但获得的值却是数以千万计的1100万以上。两点/位置之间的实际距离仅为1.1km-1.3Km。为什么会这样呢?即使.distanceTo方法返回的值以米为单位,1100万米仍然是一个很大的值。
这是我的代码:
Location locationA = new Location("LocationA");
locationA.setLatitude(lat);
locationA.setLongitude(lang);
Location locationB = new Location("LocationB");
locationB.setLatitude(14.575224);
locationB.setLongitude(121.042475);
float distance = locationA.distanceTo(locationB);
BigDecimal _bdDistance;
_bdDistance = round(distance,2);
String _strDistance = _bdDistance.toString();
Toast.makeText(this, "distance between two locations = "+_strDistance, Toast.LENGTH_SHORT).show();
public static BigDecimal round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd;
}
Run Code Online (Sandbox Code Playgroud) 请建议我,我是Android的新手如何打开一个内置的谷歌地图按钮点击在Android我有一个图像按钮. 如何在按钮点击打开内置的开放谷歌地图
android google-maps android-intent android-maps google-maps-android-api-2
情侣飞蛾前我在Android N上测试这个应用程序,一切都会正常工作,但现在我有错误.现在我使用MapFragment并出现此错误:
05-09 23:22:35.816 11112-11112/pc.dd.sex_startup E/AndroidRuntime: FATAL EXCEPTION: main
Process: pc.dd.sex_startup, PID: 11112
java.lang.RuntimeException: Unable to start activity ComponentInfo{pc.dd.sex_startup/pc.dd.sex_startup.LogIn.Maps.Map}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483)
at android.app.ActivityThread.access$900(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5441)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
Caused by: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment
at android.view.LayoutInflater.inflate(LayoutInflater.java:543)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) …Run Code Online (Sandbox Code Playgroud)