搜索插件、代码仓与 APP 分类

GitHub 代码仓mu-dawood/open_location_picker

open_location_picker

用于从 OpenStreetMap 选择一个或多个位置的 FormField

open_location_picker 项目封面
星标
13
复刻
9
最近推送(UTC)
2023年11月20日
项目状态
未归档

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

FormField to pick one or more locations from open streat map

Features

  • Pick single location
  • Pick multi locations
  • display open street maps
  • can work with bloc pattern
  • respective to dark theme

Getting started

At first you have to put your configration settings

  • handle how you get your current location
  • you can use location or geolocator package or any thing you want
    return OpenMapSettings(
      onError: (context, error) {},
      getCurrentLocation: _getCurrentLocationUsingLocationPackage,
      
      reverseZoom: ReverseZoom.suburb,
      getLocationStream: () => location.onLocationChanged.map((event) => LatLng(event.latitude!, event.longitude!)),
      child: MaterialApp(
        title: 'Flutter Demo',
        locale: const Locale("ar"),
        localizationsDelegates: const [
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
          GlobalCupertinoLocalizations.delegate,
        ],
        supportedLocales: const [
          Locale('en', ''), // English, no country code
          Locale('ar', ''), // Spanish, no country code
        ],
        theme: ThemeData.light(),
        darkTheme: ThemeData.dark(),
        themeMode: ThemeMode.dark,
        home: const MyHomePage(title: 'open_location_picker demo'),
      ),
    );

Usage

  • There are 3 ways to this pcakge

OpenMapPicker

    OpenMapPicker(
      decoration: const InputDecoration(hintText: "My location"),
      onSaved: (FormattedLocation? newValue) {
        /// save new value
      },
    ),

MultiOpenMapPicker

    MultiOpenMapPicker(
      decoration: const InputDecoration(hintText: "My  multi location"),
      onSaved: (List<FormattedLocation> newValue) {
        /// save new value
      },
    ),

Custom

  • first create your own bloc
 class CustomBloc extends Cubit<OpenMapState> implements OpenMapBloc {
   CustomBloc(OpenMapState initialState) : super(initialState);
 }
  • second use it
  Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {
    return OpenStreetMaps(
      options: OpenMapOptions(),
      bloc: CustomBloc(const OpenMapState.selected(SelectedLocation.single(null))),
    );
  }));
    
Mohamed Dawood GitHub avatar
GitHub 作者

Mohamed Dawood ↗

Full stack developer

语言DartC++CMakeHTMLRubySwiftCKotlinObjective-C

使用的依赖

依赖清单 9 项

如何选择适合项目的代码仓?

先按使用场景筛选,再比较项目活跃情况,最后到原始仓库核对使用要求。

  1. 通过仓库名、作者或描述搜索,再按技术分类缩小范围。
  2. 结合星标、复刻与最近推送比较项目;星标反映社区关注,不代表质量保证。
  3. 使用前在 GitHub 核对 README、许可证与 Issues。

来源与维护

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗