Siro GL
Siro GL خريطة لـ Flutter مبنية على MapLibre، من إنتاج Siro Maps. الاسم والحزم والقنوات والتوثيق كلها سيرو. المحرك الأصلي على الموبايل والويب هو MapLibre، ونسخته مثبّتة بالملف THIRD_PARTY_LICENSES.md.
Siro GL is a Flutter map library from Siro Maps, built on MapLibre. The package names, channels and documentation are Siro's. The native engines on mobile and web are MapLibre's, pinned in THIRD_PARTY_LICENSES.md.
الحالة / Status
Beta. الفجوات المعروفة موجودة في README كل حزمة. / Known gaps are listed in each package's README.
| المنصة / Platform | المحرك / Engine | الحالة / Status |
|---|---|---|
| Android | MapLibre Android 13.5.0 | يبني ويعمل على جهاز فعلي (itel A665L) ✅ |
| iOS | MapLibre iOS 6.28.0 | يبني ويعرض الخريطة على المحاكي ✅ |
| Web | maplibre-gl-js (الإصدار في siro_gl_web/lib/src/js_loader.dart) |
يبني ويعرض الخريطة في Chrome ✅ |
النسخة 1.0.0-dev، مبنية على flutter-maplibre-gl 0.27.1. تفاصيل التغييرات بـ CHANGELOG.md.
Version 1.0.0-dev, based on flutter-maplibre-gl 0.27.1. Changes are in CHANGELOG.md.
التثبيت / Installation
لم ننشر الحزمة بعد (المرحلة 8 بطلب صاحب المشروع). للتجربة المحلية استخدم مسار الحزمة:
The package is not published yet (phase 8 needs the owner's approval). For local use, depend on the path:
dependencies:
siro_gl:
path: ../siro_map_engine/siro_gl
الاستخدام / Usage
import 'package:flutter/material.dart';
import 'package:siro_gl/siro_gl.dart';
class MapPage extends StatelessWidget {
const MapPage({super.key});
@override
Widget build(BuildContext context) {
return SiroMap(
styleString: 'https://demotiles.maplibre.org/style.json',
initialCameraPosition: const CameraPosition(
target: LatLng(31.9539, 35.9106),
zoom: 11,
),
onMapCreated: (SiroMapController controller) {
// Use the controller for camera moves, layers and sources.
},
);
}
}
القنوات / Channels
الأسماء في الكود وفي الـ native متطابقة، وكلها ثوابت بملف واحد:
siro_gl_platform_interface/lib/src/channels.dart
| القناة / Channel | الاستخدام / Use |
|---|---|
com.siro.gl/global |
دوال على مستوى التطبيق (الكاش، الهيدرات، عداد الشبكة) |
com.siro.gl/map_<id> |
أوامر كل خريطة |
com.siro.gl/map |
نوع الـ platform view |
عداد الشبكة / Network counter
setNetworkStatsEnabled(true) ثم getNetworkStats() بيعطيك عدد طلبات الخريطة (tiles والستايل والـ sprites والـ glyphs). على iOS ما فيه عدّ للبايتات. التفاصيل بـ CHANGELOG.md.
التطوير / Development
# from the package root
flutter pub get
tool/ci.sh # format, analyze, tests, codegen check, builds
SKIP_BUILD=1 tool/ci.sh # tests only
التوليد من style.json بـ melos run generate (انظر siro_gl_codegen/README.md).
The layer and source code is generated from style.json with melos run generate (see siro_gl_codegen/README.md).
الوثائق الداخلية: docs/ARCHITECTURE.md (خريطة الكود)، وBENCHMARK.md (القياسات). Internal docs: docs/ARCHITECTURE.md (code map) and BENCHMARK.md (measurements).
الترخيص والإسناد / License and attribution
- حقوق Siro Maps على تعديلاتنا: BSD-3-Clause. انظر LICENSE.
- كل مكوّن خارجي بترخيصه: THIRD_PARTY_LICENSES.md، ونصوص الإشعارات الأصلية بـ NOTICE.
- بيانات الخريطة من OpenStreetMap: © OpenStreetMap contributors.
Siro Maps' changes are licensed BSD-3-Clause (see LICENSE). Each third-party component keeps its own license, listed in THIRD_PARTY_LICENSES.md and NOTICE. Map data is © OpenStreetMap contributors.
المساهمة والأمان / Contributing and security
- المساهمة: CONTRIBUTING.md
- الإبلاغ عن ثغرة: SECURITY.md
Libraries
- siro_gl
- This library contains the MapLibre GL plugin for Flutter.