Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中使用可用的lat-long绘制路由路径_Android_Google Maps_Google Maps Markers - Fatal编程技术网

如何在android中使用可用的lat-long绘制路由路径

如何在android中使用可用的lat-long绘制路由路径,android,google-maps,google-maps-markers,Android,Google Maps,Google Maps Markers,我想在我的移动应用程序中绘制路线路径。一切都很好,只是路线没有按照道路正常行驶这是我的代码 private void formRoadMapUrl(String tempLatLng) { StringBuilder urlString = new StringBuilder(ServerConnector.GOOGLE_ROAD_MAP_API + tempLatLng); urlString.append("&interpolate=true&key=" +

我想在我的移动应用程序中绘制路线路径。一切都很好,只是路线没有按照道路正常行驶这是我的代码

 private void formRoadMapUrl(String tempLatLng) {
    StringBuilder urlString = new StringBuilder(ServerConnector.GOOGLE_ROAD_MAP_API + tempLatLng);
    urlString.append("&interpolate=true&key=" + AppConfigurationSetting.GOOGLE_ROAD_MAP_API);
    requestToServer(urlString);
}
在这里,我将我的lat long发送到Google

private void locationTrackPolyline(String output) {
    try {
        JSONObject obj = new JSONObject(output);
        if (obj.has("snappedPoints")) {
            mResultOfGoogleRoadMapAPI++;
            Gson gson = new Gson();
            String result   = obj.getString("snappedPoints");

            Type type = new TypeToken<List<GoogleRoadMap>>(){}.getType();
            List<GoogleRoadMap> batchArrayModel = gson.fromJson(result, type);
            Integer batchListSize = batchArrayModel.size();

            ArrayList<LatLng> polylines = new ArrayList<LatLng>();

            for (GoogleRoadMap batchObj: batchArrayModel) {
                LatLng polyline = new LatLng(Double.valueOf(batchObj.getLocation().getLatitude()),
                        Double.valueOf(batchObj.getLocation().getLongitude()));
                polylines.add(polyline);

                // TODO : animation data passing is google map
                addMarkerToMap(polyline);
            }

            // Polylines are useful for marking paths and routes on the mMap.
            LatLng lat = polylines.get(0);

            Integer getLength = polylines.size();
            LatLng endPoints = polylines.get(getLength - 1);

            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(lat, 17));
            if(mResultOfGoogleRoadMapAPI == 1) {
                mMap.addMarker(new MarkerOptions()
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_green100))
                        .title("Start Point")
                        .snippet("The most populous city in Australia.")
                        .position(lat));
            }
            mAnimatedPolyline.addAll(polylines);
            if(mIterationOfGoogleRoadMapAPI == mResultOfGoogleRoadMapAPI) {
                mMap.addMarker(new MarkerOptions()
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_red100))
                        .title("End Point")
                        .position(endPoints));

                animator.startAnimation(true);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}
private void locationTrackPolyline(字符串输出){
试一试{
JSONObject obj=新的JSONObject(输出);
如果(对象有(“捕捉点”)){
mresultofgoogleroadmap++;
Gson Gson=新的Gson();
String result=obj.getString(“snapdpoints”);
Type Type=new-TypeToken(){}.getType();
List batchArrayModel=gson.fromJson(结果,类型);
整数batchListSize=batchArrayModel.size();
ArrayList多段线=新的ArrayList();
for(谷歌路线图batchObj:batchArrayModel){
LatLng多段线=新LatLng(Double.valueOf(batchObj.getLocation().getLatitude()),
Double.valueOf(batchObj.getLocation().getLongitude());
多段线。添加(多段线);
//TODO:动画数据传递是谷歌地图
addMarkerToMap(多段线);
}
//多段线用于在mMap上标记路径和管线。
LatLng lat=多段线。获取(0);
整数getLength=polylines.size();
LatLng端点=polylines.get(getLength-1);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(lat,17));
if(mresultOfGoogleRoadmap==1){
mMap.addMarker(新标记选项()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map\u green100))
.标题(“起点”)
.snippet(“澳大利亚人口最多的城市”)
.位置(纬度);
}
mAnimatedPolyline.addAll(多段线);
if(谷歌路线图API的MiterationOfGoogleRoadmap==MRESultOfGoogleRoadmap){
mMap.addMarker(新标记选项()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map\u red100))
.标题(“终点”)
.位置(端点);
动画师。开始动画(真实);
}
}
}捕获(JSONException e){
e、 printStackTrace();
}
}

在这里,我显示的路径根据拉特长我从谷歌得到

你的密码在哪里?我需要一张支票。请看。如果你想画一条线(路线),你必须使用谷歌地图多段线参考此链接@T.Heron现在我把我的代码我的地图工作正常唯一的问题是它没有显示正确的路径。
//Please add below code 

LatLng mLatLng = new LatLng(23.2156, 72.6569);
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(mLatLng, 10);
googlemap.animateCamera(cameraUpdate);


googlemap.addPolyline(new PolylineOptions().add(new LatLng(lat,lng), new LatLng(23.2156, 72.6369)).width(10).color(Color.BLUE).geodesic(true));
MarkerOptions markerOptions = new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pin));
markerOptions.title(“start");
googlemap.addMarker(markerOptions.position(new LatLng(23.2156, 72.6569)));

MarkerOptions markerOptionsDest = new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.pin));
markerOptionsDest.title(“end");
googlemap.addMarker(markerOptionsDest.position(new LatLng(23.2156, 72.6369)));