HOSSEINONLINE7
چهارشنبه 30 اردیبهشت 1394, 15:43 عصر
سلام من با استفاده از Api در گوگل مپ مسیر بین 2 طول و عرض جغرافیایی را بدست میارم . خودش بطور پیشفرض نزدیک ترین مسیر را نشون میده . من میخوام دورترین مسیرش هم بدست بیارم .
میخوام هر 2 مسیر را به کاربر نشون بدم چطور باید این کار را بکنم ؟
jaykob
چهارشنبه 30 اردیبهشت 1394, 16:28 عصر
سلام من با استفاده از Api در گوگل مپ مسیر بین 2 طول و عرض جغرافیایی را بدست میارم . خودش بطور پیشفرض نزدیک ترین مسیر را نشون میده . من میخوام دورترین مسیرش هم بدست بیارم .
میخوام هر 2 مسیر را به کاربر نشون بدم چطور باید این کار را بکنم ؟
سلام
اگه امکانش براتون هست راهکار محاسبه فاصله بین ۲ طول و عرض جغرافیایی رو بگید که ما هم استفاده کنیم
با تشکر
HOSSEINONLINE7
چهارشنبه 30 اردیبهشت 1394, 17:00 عصر
سلام
اگه امکانش براتون هست راهکار محاسبه فاصله بین ۲ طول و عرض جغرافیایی رو بگید که ما هم استفاده کنیم
با تشکر
سلام با این روش میشه فاصله ی بین 2 طول و عرض جغرافیایی را بدست آورد .
طول عرض جغرافیایی را به تابع ارسال میکنید اون 2 مسیر را با خط به هم وصل میکنه :
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var route;
var routeBack;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var center = new google.maps.LatLng(32.646602, 51.667866);
var mapOptions = {
center: center,
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: true
}
var map = new google.maps.Map(document.getElementById('googleMap '), mapOptions);
directionsDisplay.setMap(map);
var map = new google.maps.Map(document.getElementById('googleMap Back'), mapOptions);
directionsDisplay.setMap(map);
}
var oldMarkers = null;
var oldiw = null;
$("#calcRoute").click(function (e) {
e.preventDefault();
var s_lat = parseFloat(@ViewData["lat"]);
var s_lng = parseFloat(@ViewData["lng"]);
var e_lat = parseFloat(@ViewData["Old_lat"]);
var e_lng = parseFloat(@ViewData["Old_lng"]);
calcRoute(s_lat, s_lng, e_lat, e_lng);
calcMeter(s_lat, s_lng, e_lat, e_lng);
calcBackRoute(s_lat, s_lng, e_lat, e_lng);
BackcalcMeter(s_lat, s_lng, e_lat, e_lng);
})
function calcRoute(s_lat, s_lng, e_lat, e_lng)
{
var myLatlng = new google.maps.LatLng(32.646602, 51.667866);
var mapOptions = {
zoom: 14,
minZoom: 13,
maxZoom: 19,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
overviewMapControl: true,
streetViewControl: true,
scaleControl: true,
mapTypeControl: true,
panControl: true,
panControlOptions:{
position: google.maps.ControlPosition.TOP_RIGHT
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.TOP_RIGHT
}
}
var map = new google.maps.Map(document.getElementById("googleMap"), mapOptions);
var polys = new google.maps.Polyline({
map: map,
strokeColor: "#CC33FF",
strokeOpacity: 0.6,
strokeWeight: 15,
});
myCoord = [
new google.maps.LatLng(s_lat, s_lng),
new google.maps.LatLng(e_lat, e_lng),
];
// BEGIN: Snap to road
var service = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);
var waypts = [];
for(j=1;j<myCoord.length-1;j++){
waypts.push({location: myCoord[j],
stopover: true});
}
var request = {
origin: myCoord[0],
destination: myCoord[myCoord.length-1],
waypoints: waypts,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
service.route(request,function(result, status) {
if(status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
} else { alert("Directions request failed:" +status); }
});
}
بعد از اون با تابع زیر هم فاصله را میشه بدست آورد :
function calcMeter(s_lat, s_lng, e_lat, e_lng){
var request = {
origin: s_lat + ',' + s_lng,
destination: e_lat + ',' + e_lng,
//waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var route = response.routes[0];
var routeKilometer = document.getElementById('DivRouteKilometer');
// For each route, display summary information.
for (var i = 0; i < route.legs.length; i++) {
route = route.legs[i].distance.text;
localStorage['route'] = route;
routeKilometer.innerHTML += '<b>مسیر رفت</b><br>'
routeKilometer.innerHTML += route;
}
}
});
}
لطفا یکی از دوستان به منم کمک کنه تا مشکلم حل بشه .
HOSSEINONLINE7
پنج شنبه 31 اردیبهشت 1394, 19:00 عصر
دوستان کسی این مورد را حل کرده ؟
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.