يقوم كود HTML هذا بتهيئة خريطة TomTom، ويضع علامات على نقاط الالتقاط والانزال، ويرسم الطريق بينهما.

النتيجة: نموذج طلب الرحلة وخريطة النجاح

\\\"How

\\\"How

ملاحظة: الكود المقدم أعلاه هو مثال مبسط لتوضيح الوظيفة الأساسية لطلب رحلة وحساب المسارات باستخدام واجهة برمجة تطبيقات TomTom. قد يختلف التنفيذ الفعلي ويتضمن ميزات أو أشكالًا إضافية بناءً على متطلبات محددة. للحصول على معلومات أكثر تفصيلاً والاستخدام المتقدم، يرجى الرجوع إلى وثائق مطور TomTom الرسمية.

","image":"http://www.luping.net/uploads/20240821/172421352866c56918dbbbd.jpg","datePublished":"2024-08-21T12:12:08+08:00","dateModified":"2024-08-21T12:12:08+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء تطبيق تحسين الطريق متعدد التوقفات باستخدام TomTom Maps API

كيفية إنشاء تطبيق تحسين الطريق متعدد التوقفات باستخدام TomTom Maps API

تم النشر بتاريخ 2024-08-21
تصفح:771

سيرشدك هذا المنشور خلال إنشاء تطبيق طلب ركوب باستخدام TomTom Maps API. سيسمح هذا التطبيق للمستخدمين بإدخال مواقع الركوب والنزول المتعددة، وحساب المسار الأمثل، وعرضه على الخريطة. سنغطي كل شيء بدءًا من الحصول على مفتاح واجهة برمجة التطبيقات (API) وحتى عرض المسار الأمثل على الخريطة.

الخطوة 1: إعداد TomTom API
قبل الغوص في الكود، ستحتاج إلى التسجيل في TomTom Developer Portal والحصول على مفتاح API. سيسمح لك هذا المفتاح بالوصول إلى خدمات TomTom مثل التوجيه والترميز الجغرافي والخرائط.

الخطوة 2: تنفيذ وظيفة طلب الرحلة
يتضمن جوهر التطبيق جمع العناوين، وتحويلها إلى إحداثيات، وحساب المسار الأمثل. إليك كيفية القيام بذلك:

def ride_request(request):
    if request.method == 'POST':
        form = RideForm(request.POST)
        if form.is_valid():
            ride = form.save(commit=False)
            # Get coordinates for the pickup and drop locations
            pickup_coords = get_coordinates(ride.pickup_address)
            pickup_coords_1 = get_coordinates(ride.pickup_address_1)
            pickup_coords_2 = get_coordinates(ride.pickup_address_2)
            drop_coords = get_coordinates(ride.drop_address)

            # Ensure all coordinates are available
            if all([pickup_coords, pickup_coords_1, pickup_coords_2, drop_coords]):
                # Set the coordinates
                ride.pickup_latitude, ride.pickup_longitude = pickup_coords
                ride.pickup_latitude_1, ride.pickup_longitude_1 = pickup_coords_1
                ride.pickup_latitude_2, ride.pickup_longitude_2 = pickup_coords_2
                ride.drop_latitude, ride.drop_longitude = drop_coords

                # Save the ride and redirect to the success page
                try:
                    ride.save()
                    return redirect('success_page', pickup_lon=ride.pickup_longitude, pickup_lat=ride.pickup_latitude,
                                    pickup_lon_1=ride.pickup_longitude_1, pickup_lat_1=ride.pickup_latitude_1,
                                    pickup_lon_2=ride.pickup_longitude_2, pickup_lat_2=ride.pickup_lat_2,
                                    drop_lon=ride.drop_longitude, drop_lat=ride.drop_latitude)
                except IntegrityError as e:
                    messages.error(request, f'IntegrityError: {str(e)}')
            else:
                messages.error(request, 'Error getting coordinates. Please try again.')
    else:
        form = RideForm()

    return render(request, 'maps/ride_request.html', {'form': form})

في هذا المقتطف، يقبل التطبيق إدخال المستخدم لعناوين متعددة، ويحول هذه العناوين إلى إحداثيات باستخدام وظيفة get_coحداثيات، ويحفظ البيانات لاستخدامها لاحقًا.

def get_coordinates(address):
    """
    Get coordinates (latitude, longitude) for a given address using TomTom Geocoding API.
    """
    api_key = 'YOUR_TOMTOM_API_KEY'
    base_url = 'https://api.tomtom.com/search/2/geocode/{address}.json'

    # Prepare the URL with the address and API key
    url = base_url.format(address=address)
    params = {'key': api_key}

    # Make the request to TomTom Geocoding API
    response = requests.get(url, params=params)
    data = response.json()

    # Check if the request was successful
    if response.status_code == 200 and data.get('results'):
        # Extract coordinates from the response
        result = data['results'][0]
        if 'position' in result:
            coordinates = result['position']
            return coordinates.get('lat'), coordinates.get('lon')
        else:
            print(
                f"Error getting coordinates for {address}: 'position' key not found in the response.")
            return None
    else:
        # Handle errors or return a default value
        print(
            f"Error getting coordinates for {address}: {data.get('message')}")
        return None

الخطوة 3: حساب المسار الأمثل
بمجرد حصولك على الإحداثيات، فإن الخطوة التالية هي حساب المسار الأمثل. تساعد واجهة برمجة تطبيقات تحسين نقطة الطريق الخاصة بـ TomTom في تحديد المسار الأكثر كفاءة بين نقاط متعددة.

def get_optimized_route(*pickup_coords, drop_coords):
    api_key = 'YOUR_TOMTOM_API_KEY'

    # Prepare the payload for the API
    payload = {
        'waypoints': [{'point': {'latitude': lat, 'longitude': lon}} for lon, lat in pickup_coords],
        'options': {'travelMode': 'car'},
    }

    # Add the drop location to the waypoints
    payload['waypoints'].append({'point': {'latitude': drop_coords[1], 'longitude': drop_coords[0]}})

    # API request
    response = requests.post(f'https://api.tomtom.com/routing/waypointoptimization/1',
                             params={'key': api_key},
                             json=payload)

    if response.status_code == 200:
        data = response.json()
        if 'optimizedOrder' in data:
            # Extract the optimized route
            return [get_route_geometry(pickup_coords[i], pickup_coords[j]) 
                    for i, j in zip(data['optimizedOrder'], data['optimizedOrder'][1:])]
    return None

ترسل هذه الوظيفة طلبًا إلى TomTom API، وتتلقى الترتيب الأمثل للإحداثيات، ثم تحسب هندسة المسار.

الخطوة 4: عرض الخريطة والطريق
أخيرًا، بعد الحصول على بيانات المسار المحسنة، حان الوقت لعرض الخريطة على Success_page.html.

{% load static %}



    
    
    Ride Request - Success
    
    
    
    


    

يقوم كود HTML هذا بتهيئة خريطة TomTom، ويضع علامات على نقاط الالتقاط والانزال، ويرسم الطريق بينهما.

النتيجة: نموذج طلب الرحلة وخريطة النجاح

How to Create a Multi-Stop Route Optimization Application with TomTom Maps API

How to Create a Multi-Stop Route Optimization Application with TomTom Maps API

ملاحظة: الكود المقدم أعلاه هو مثال مبسط لتوضيح الوظيفة الأساسية لطلب رحلة وحساب المسارات باستخدام واجهة برمجة تطبيقات TomTom. قد يختلف التنفيذ الفعلي ويتضمن ميزات أو أشكالًا إضافية بناءً على متطلبات محددة. للحصول على معلومات أكثر تفصيلاً والاستخدام المتقدم، يرجى الرجوع إلى وثائق مطور TomTom الرسمية.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/girish_amudala/how-to-create-a-multi-stop-route-optimization-application-with-tomtom-maps-api-m6d?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3