SolverTech.Tasha.Plugins.Distances.HERE - Router

Z Solvertech
Skočit na navigaci Skočit na vyhledávání
Jiné jazyky:

Wtyczka do wyznaczania matryc i tras z wykorzystaniem usług HERE

Instalacja

Automatycznie w instalacji domyślnej. W przypadku instalacji ręcznej musisz zainstalować trzy pliki w folderze Wtyczki:

SolverTech.Distances.HERE.dll (samodzielny router)

SolverTech.Tasha.Plugins.Distances.HERE.dll (wtyczka routera Tasha)

SolverTech.Tasha.Plugins.Distances.HERE.config (ustawienia wtyczek, patrz poniżej)

Zaloguj się HERE

Wtyczka korzysta z usług HERE, dlatego konieczne jest wypełnienie klucza Api (Ustawienia Tasha-> HERE> Klucz Api)

Starsze konta HERE

Starsze konta, które nie zostały jeszcze autoryzowane jednym kluczem API i używają identyfikatora aplikacji / kodu aplikacji do logowania dla matrycy i trasy w ustawieniach:

<Matrix><BaseUrl>https://matrix.route.api.here.com</BaseUrl></Matrix> … <Route><BaseUrl>https://route.api.here.com</BaseUrl></Route>

HERE API wersja 8

Nowsza wersja HERE (v8) jest wstecznie kompatybilna z obecną konfiguracją. APIv8 oferuje dokładniejsze i szybsze obliczenia, ale niektóre funkcje nie są w pełni zaimplementowane (np. ExcludeCountries), więc jest domyślnie wyłączony, a v7 jest nadal używany. Aby przejść na obliczenia APIv8, musisz włączyć Enable w ApiV8Settings na true:

<ApiV8Settings>

 <Enable>true</Enable>
 <V8MatrixURL><https://matrix.router.hereapi.com/v8/matrix</V8MatrixURL>
 <V8RouteURL><https://router.hereapi.com/v8/routes</V8RouteURL>

</ApiV8Settings>

Jednostki wagi i wymiarów samochodów ciężarowych

APIv7, na którym oparta jest konfiguracja wtyczki, używa ton dla masy jednostkowej i metrów dla wymiarów. Aby zachować kompatybilność wsteczną, dlatego zawsze zakłada się, że jednostki są określone w konfiguracji jako liczba float wskazująca tony / metry, a jeśli format zostanie zmieniony przez TUTAJ (np. Podczas przejścia na APIv8), wtyczka wykona konwersję wewnętrznie, bez interwencji lub wiedzy użytkownika.

Tolle

  • APIv8 nie obsługuje jeszcze określania parametrów dla prawidłowego naliczania opłat drogowych, dlatego do naliczania opłat drogowych nadal wykorzystywana jest wersja 7.

Konfigurace

Globální

Parametr Typ Význam
PersistentRoutes bool Zapisuje już obliczone trasy RouteID i WKT w osobnym pliku <Scenario> .routes. Przyspiesza wielokrotne wyświetlanie trasy na mapie wielokrotnie szybciej za cenę DB.
CrowFlyFirst bool W przypadkach, gdy ważniejsze jest, aby wyniki były natychmiastowe, możliwe jest obliczenie odległości w linii prostej, zgodnie z wartościami dla konkretnego typu pojazdu, patrz parametry DistanceCoefficient i ApproxSpeedInKilometersPerHour. Dokładne wartości są następnie obliczane w tle.

Sanity check

Dla każdej obliczonej odległości obliczany jest crowfly, a jeśli wartości różnią się znacząco, wyskakuje ostrzeżenie. Adresy miejsc dotkniętych problemem można odczytać z dziennika.

Parametr Typ Význam
Enable bool Włącz sanity check
MaxMultipleDifference float Jeśli crowfly różni się o tę wielokrotność od obliczonej odległości, pojawi się ostrzeżenie. Wartość domyślna: 10.0
MinimumDistanceInMeters int Ignoruj sprawdzanie, jeśli odległość jest mniejsza niż ustawiona wartość (W metrach). Wartość domyślna 1000.

Macierz odległości

Parametr Typ Význam
SearchRange int Ogranicz promień obszaru, w którym można wyszukać trasę. Niższa liczba przyspiesza obliczenia, ale może spowodować nieoptymalne rozwiązanie. W metrach
UseDynamicRange bool To samo co SearchRange, z tą różnicą, że wartość SearchRange jest obliczana dynamicznie na podstawie odległości dwóch najdalszych punktów w macierzy. Podczas korzystania z UseDynamicRange SearchRange nie może być wypełniony
SearchRangeDistanceCoefficient float Współczynnik do pomnożenia odległości między dwoma najbardziej zewnętrznymi punktami w macierzy SearchRange podczas korzystania z UseDynamicRange. Zazwyczaj 1,5-2,0
AllowedTimeRangeInMinutes int Dozwolone okno czasowe.
EnableLastMileComputing bool Uwzględnia odległość i czas tzw. Ostatniej mili - odcinka, który musi pokonać w inny sposób (pieszo, na wózku inwalidzkim) między ostatnim punktem (droga bez wjazdu) a podanym adresem (wejście do budynku). Musisz ustawić „LastMileSpeedInMetersPerSecond”
LastMileSpeedInMetersPerSecond float Prędkość wm / s, aby obliczyć czas spędzony na przejściu do ostatniej mili
LastMileRadiusInMeters int Maksymalny promień wokół określonej lokalizacji w metrach, przy którym zostanie wykonane odwrotne geokodowanie w celu ustalenia lokalizacji nawigacji.
UseCrowFlyCalculation bool Zawsze zwraca odległość i czas. Jeśli nie znajdzie trasy, oblicza wartości
UseCarIfTruckNotFound bool Jeśli nie znajdzie trasy dla ciężarówki, użyj wartości czasu i odległości, jakby to był samochód
CrowFlyDistanceCoefficient float Współczynnik, który zwielokrotnia bezpośrednią odległość między dwoma punktami podczas używania UseCrowFlyCalculation
CrowFlyFirst bool

Najpierw oblicza odległości przez łom, a następnie oblicza odległości.

Jeśli korzystamy z niego, konieczne jest posiadanie zdefiniowanych parametrów w “<Vehicle>” (DistanceCoefficient a CrowflyApproxSpeedInKilometersPerHour)

CrowFlyApproxSpeedInKilometersPerHour float Prędkość km/h, aby określić czas za pomocą UseCrowFlyCalculation
MinColumnCountInMtoNDistanceMatrixAPIRequest int Zmniejsza rozmiar wymagań dla serwerów HERE ze względu na optymalizację. Optymalnej wartości poszukuje się empirycznie i może ona zmieniać się z czasem. Możliwy zakres wartości to 10-100. Wartość domyślna: 15
NavigateCloserNumberOfSteps int

Jeśli router nie może znaleźć trasy, na przykład dlatego, że adres docelowy znajduje się w strefie zakazu wstępu, przesuwa punkt nawigacyjny bliżej pozycji wyjściowej i powtarza żądanie. Określa liczbę powtórzeń tego procesu, zanim znajdzie trasę lub porzuci proces i przejdzie do następnego kroku (obliczenia crowfly, jeśli włączone). Aby wyłączyć funkcjonalność, należy wpisać "0".

Wartość domyślna: 0 (wyłączony)

NavigateCloserStepInMeters int

Odległość w metrach, o którą przesuwany jest punkt nawigacyjny, patrz parametr ‘NavigateCloserNumberOfSteps’.

Wartość domyślna: 20

Pozostałe parametry są zdefiniowane HERE i są opisane na strone https://developer.here.com/documentation/routing/dev_guide/topics/resource-calculate-matrix.html

Large scale matrix

Do obliczania dużych macierzy, gdzie klasyczna metoda obliczeniowa zajmuje dużo czasu, można wykorzystać Large Scale Matrix API (dalej LSM). Za pomocą LSM można obliczyć ogromne macierze (10,000 x 10,000) w ciągu kilku minut. Ograniczenia:

  1. LSM może być używany tylko na kontach HERE z planem "Zarządzane aktywa z optymalizacją", które korzystają z autoryzacji OAuth (mają wypełnione pola HERE "ID klucza dostępu" i "Sekret klucza" w ustawieniach Tashi)
  2. Na razie nie można stosować przewidywania ruchu drogowego
  3. Najmniejszy wymóg jest obliczany jako minimum 100 000 transakcji, w przypadku planów, w których każda transakcja jest płatna, zaleca się stosowanie LSM dla scenariuszy, w których jest minimum 317 miejsc (317x317 > 100 000 transakcji). Alternatywnie, ogranicz minimalną liczbę żądań za pomocą parametru MinElementsForLargeScaleMatrix.
Parametr Typ Význam
EnableLargeScaleMatrix bool

Umożliwia obliczanie niektórych macierzy za pomocą LSM.

Wartość domyślna: false

MinElementsForLargeScaleMatrix int Jeśli zapytanie zawiera mniej niż określoną liczbę elementów, macierz nie zostanie obliczona przy użyciu LSM.

Wartość domyślna: 1500

LargeScaleMatrixURL string

Adres URL interfejsu API LSM, na wypadek gdyby w przyszłości uległ zmianie

Wartość domyślna: https://largescalematrix.router.hereapi.com/v1/matrix

Przykład konfiguracji

<?xml version="1.0" encoding="utf-8"?> <DistancesHERESettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <PersistentRoutes>true</PersistentRoutes>
 <SanityCheck>
   <Enable>true</Enable>
   <MaxMultipleDifference>5.0</MaxMultipleDifference>

<MinimumDistanceInMeters>1000</MinimumDistanceInMeters>

 </SanityCheck>
 <Matrix>
   <BaseUrl>https://matrix.route.ls.hereapi.com</BaseUrl>
   <Path>/routing/7.2</Path>
   <Resource>/calculatematrix</Resource>
   <Format>.json</Format>
   <Parameters>
     <Parameter>
       <Name>searchRange</Name>
       <Value>1000000</Value>
     </Parameter>
     <Parameter>
       <Name>matrixAttributes</Name>
       <Value>none,su</Value>
     </Parameter>
     <Parameter>
       <Name>summaryAttributes</Name>
       <Value>none,tt,di</Value>
     </Parameter>
     <Parameter>
       <Name>AllowedTimeRangeInMinutes</Name>
       <Value>60</Value>
     </Parameter>
     <Parameter>
       <Name>EnableLastMileComputing</Name>
       <Value>true</Value>
     </Parameter>  
     <Parameter>
       <Name>NavigateCloserNumberOfSteps</Name>
       <Value>3</Value>
     </Parameter>
     <Parameter>
       <Name>NavigateCloserStepInMeters</Name>
       <Value>20</Value>
     </Parameter>
     <Parameter>

<Name>EnableLargeScaleMatrix</Name> <Value>false</Value> </Parameter> <Parameter> <Name>MinElementsForLargeScaleMatrix</Name> <Value>1500</Value> </Parameter> <Parameter> <Name>LargeScaleMatrixURL</Name> <Value>https://largescalematrix.router.hereapi.com/v1/matrix</Value> </Parameter> <Parameter>

     <Name>CrowFlyFirst</Name>
      <Value>true</Value>
     </Parameter>
   </Parameters>
 </Matrix>
 <Route>
   <BaseUrl>https://route.ls.hereapi.com</BaseUrl>
   <Parameters>
     <Parameter>
       <Name>representation</Name>
       <Value>overview</Value>
     </Parameter>
     <Parameter>
       <Name>routeAttributes</Name>
       <Value>none,sm,sh</Value>
     </Parameter>
     <Parameter>
       <Name>alternatives</Name>
       <Value>9</Value>
     </Parameter>
     <Parameter>
       <Name>language</Name>
       <Value>cs-cz</Value>
     </Parameter>
   </Parameters>
 </Route>
 <Vehicle>
   <ArrayOfParameter>
     <Parameter>
       <Name>mode</Name>
       <Value>fastest;car;traffic:enabled</Value>
     </Parameter>
     <Parameter>
       <Name>DistanceCoefficient</Name>
       <Value>2.0</Value>
     </Parameter>
     <Parameter>
        <Name>CrowflyApproxSpeedInKilometersPerHour</Name>
        <Value>60.0</Value>
     </Parameter>
   </ArrayOfParameter>
 </Vehicle>
</DistancesHERESettings>