feat: implement billing, usage tracking, and administrative geocoding features in API with infrastructure updates

This commit is contained in:
Hamza-Ayed
2026-07-28 04:43:23 +03:00
parent 2f7c2066f7
commit dc9d546733
133 changed files with 3599 additions and 356 deletions
@@ -0,0 +1,16 @@
# GraphHopper الرسمي — بديل صورة israelhikingmap التي تتجاهل oneway/roundabout للسيارات
FROM eclipse-temurin:21-jre-alpine
RUN apk add --no-cache curl
WORKDIR /graphhopper
ARG GH_VERSION=11.0
RUN curl -fL "https://github.com/graphhopper/graphhopper/releases/download/${GH_VERSION}/graphhopper-web-${GH_VERSION}.jar" \
-o graphhopper-web.jar
EXPOSE 8080 8081
# sh -c ضروري لتمرير JAVA_OPTS فعلياً (الصورة القديمة كانت تتجاهله)
ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /graphhopper/graphhopper-web.jar \"$@\"", "--"]
CMD ["server", "/graphhopper/config.yml"]
+7 -1
View File
@@ -19,7 +19,8 @@ graphhopper:
import.osm.ignored_highways: "footway,cycleway,path,pedestrian,steps"
# قائمة واحدة بلا مسافات — GraphHopper يفصل على الفاصلة فقط
graph.encoded_values: road_class,road_environment,max_speed,road_access,surface,roundabout,lanes
# car_access إلزامية لأن custom_model يستخدمها لفرض اتجاه السير (انظر priority أدناه)
graph.encoded_values: road_class,road_environment,max_speed,road_access,surface,roundabout,lanes,car_access
profiles:
- name: car
@@ -49,6 +50,11 @@ graphhopper:
- if: "road_class == LIVING_STREET || road_class == SERVICE"
limit_to: 14
priority:
# فرض اتجاه السير: بدون هذه القاعدة تبقى car_access مخزّنة في الغراف
# لكن غير مُطبَّقة في حساب الوزن، فيُخترق كل oneway. القاعدة تأتي
# افتراضياً من car.json، ولا تُدمج حين يُكتب custom_model سطرياً.
- if: "!car_access"
multiply_by: 0
# تفضيل الشرايين الرئيسية بدل قصّ الطريق عبر الأحياء
- if: "road_class == LIVING_STREET"
multiply_by: 0.5