패키지, 저장소 및 앱 카테고리 검색

패키지 상세v0.1.0+7

nominatim_location_picker

완전 무료 지오코딩을 지원하는 플러터용 맵 위치 선택기입니다! 이제 MapBox 지원도 제공합니다

30일 다운로드
13
좋아요
45
Pub 점수
35

패키지 설치

flutter pub add nominatim_location_picker

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Nominatim을 통한 무료 지오코딩을 통해 지도 위치를 선택할 수 있는 플러터 패키지로, 완전히 오픈소스 솔루션을 제공합니다. 향상된 지도 기능을 위해 Mapbox 통합을 지원합니다. 이 선택기는 사용자가 지도 위에서 직접 위치를 검색하고 선택할 수 있게 해주며, 유료 서비스에 의존하지 않고 주소 입력이나 위치 선택이 필요한 앱에 적합합니다. 간단함과 성능을 고려해 설계되었으며, 플러터 프로젝트에 원활하게 통합됩니다.

사용 사례

  • 폼 내 주소 검색
  • 배달 앱의 위치 선택
  • 여행 앱의 위치 기반 기능
  • 지도 기반 사용자 프로필 설정
  • 오프라인 사용 가능한 위치 입력

주요 기능

  • Nominatim을 사용한 무료 지오코딩
  • Mapbox 지원
  • Flutter와의 간단한 통합
  • 실시간 위치 검색
  • 사용자 정의 가능한 지도 외관

적합한 대상

  • 무료 지오코딩을 찾는 개발자
  • 경량 위치 선택기 필요 앱
  • API 비용을 회피하는 프로젝트
  • 여행 및 물류 애플리케이션
  • 오픈소스 중심 팀

고려 사항

  • 외부 Nominatim 서비스의 가용성에 따라 달라집니다
  • 높은 사용량 시 속도 제한이 적용될 수 있습니다
  • Mapbox는 별도의 API 키가 필요합니다
  • 제한된 오프라인 기능
  • 지오코딩을 위해 인터넷 연결이 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Nominatim Location Picker

pub package GitHub stars GitHub forks GitHub license GitHub issues

Nominatim Location Picker is a package that appears as a FREE alternative (WITH NO API KEYS OR EVEN ACCESSTOKEN, NONE OF THEM ARE NECESSARY) with support for Geocoding with a beautiful and coherent interface using the OpenStreetMap Nominatim.

In the current version, support for Mapbox has also been added, with an interface in line with Nominatim so you can choose which one to use or vary between the two of them.

Nominatim Location Picker Screenshots

MapBox Location Picker Screenshots

Nominatim Location Picker's version 0.1.0+7 features!

- Custom Maps and Markers

- Support with the same interface for MapBox;

- Auto search with MapBox

- Geocoding search with Nominatim and Mapbox;

- Get Current User Location;

- Returns the Latitude and Longitude coordinates of the searched location;

- Returns the description of the searched location;

- Returns the Country, State, city and district of the searched Location in both Nominatim and MapBox;

OpenStreetMap Nominatim

Nominatim (from the Latin, 'by name') is a tool to search OpenStreetMap data

by name and address (geocoding) and to generate synthetic addresses of

OSM points (reverse geocoding). An instance with up-to-date data can be found

at https://nominatim.openstreetmap.org. Nominatim is also used as one of the

sources for the Search box on the OpenStreetMap home page.

Nominatim's Documentation

The documentation of the latest development version is in the

docs/ subdirectory. A HTML version can be found at

https://nominatim.org/release-docs/develop/ .

Nominatim's Limitations

  • No heavy uses (an absolute maximum of 1 request per second).

  • Provide a valid HTTP Referer or User-Agent identifying the application (stock User-Agents as set by http libraries will not do).

  • Clearly display attribution as suitable for your medium.

  • Data is provided under the ODbL license which requires to share alike (although small extractions are likely to be covered by fair usage / fair dealing).

MapBox

Mapbox is a large provider of custom online maps for websites and applications. Since 2010, it has rapidly expanded the niche of custom maps, as a response to the limited choice offered by map providers such as Google Maps.

MapBox's Documentation

Mapbox APIs are divided into four distinct services: Maps, Navigation, Search, and Accounts. Each of these services has its own overview page in this documentation. These overview pages are divided into the individual APIs that make up the service. The documentation for each API is structured by endpoints. An endpoint is a specific method within an API that performs one action and is located at a specific URL

https://docs.mapbox.com/api/

Usage

To use this plugin, add nominatim_location_picker as a dependency in your pubspec.yaml file.


dependencies:

nominatim_location_picker: any # or the latest version on Pub

Import the Nominatim Location Picker in your .dart file...


import  'package:nominatim_location_picker/nominatim_location_picker.dart';

Android Permissions

The following permissions are recommended.

android.permission.ACCESS_FINE_LOCATION Allows the API to determine as precise a location as possible from the available location providers, including the Global Positioning System (GPS) as well as WiFi and mobile cell data.

android.permission.ACCESS_COARSE_LOCATION Allows the API to use WiFi or mobile cell data (or both) to determine the device's location. The API returns the location with an accuracy approximately equivalent to a city block.


<uses-permission  android:name="android.permission.ACCESS_FINE_LOCATION"  />

<uses-permission  android:name="android.permission.ACCESS_COARSE_LOCATION"  />

<uses-permission  android:name="android.permission.INTERNET"  />

Example of Nominatim Location Picker

See more in the main.dart file.


import  'package:nominatim_location_picker/nominatim_location_picker.dart';

  Future getLocationWithNominatim() async {
    Map result = await showDialog(
        context: context,
        builder: (BuildContext ctx) {
          return NominatimLocationPicker(
            searchHint: 'Pesquisar',
            awaitingForLocation: "Procurando por sua localização",
          );
        });
    if (result != null) {
      setState(() => _pickedLocation = result);
    } else {
      return;
    }
  }
Nominatim Location Picker with Custom Maps and Markers

See more in the main.dart file.


import  'package:nominatim_location_picker/nominatim_location_picker.dart';
import 'package:flutter_map/flutter_map.dart';

  Future getLocationWithNominatim() async {
    Map result = await showDialog(
      context: context,
      builder: (BuildContext ctx) {
        return NominatimLocationPicker(
          searchHint: 'Pesquisar',
          awaitingForLocation: "Procurando por sua localização",
          customMarkerIcon: Image.asset(
            "assets/marker.png",
          ),
          customMapLayer: TileLayerOptions(
            urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
            subdomains: ['a', 'b', 'c']
          ),
        );
      }
    );
    if (result != null) {
      setState(() => _pickedLocation = result);
    } else {
      return;
    }
  }
Example of MapBox Location Picker

See more in the main.dart file.


import  'package:nominatim_location_picker/nominatim_location_picker.dart';

  Widget getLocationWithMapBox() {
    return MapBoxLocationPicker(
      popOnSelect: true,
      apiKey: "YOUR API KEY",
      limit: 10,
      language: 'pt',
      country: 'br',
      searchHint: 'Pesquisar',
      awaitingForLocation: "Procurando por sua localização",
      onSelected: (place) {
        setState(() {
          _pickedLocationText = place.geometry.coordinates; // Example of how to call the coordinates after using the Mapbox Location Picker
          print(_pickedLocationText);
        });
      },
      context: context,
    );
  }
MapBox Location Picker with Custom Maps and Markers

See more in the main.dart file.


import  'package:nominatim_location_picker/nominatim_location_picker.dart';
import 'package:flutter_map/flutter_map.dart';

  Widget getLocationWithMapBox() {
    return MapBoxLocationPicker(
      popOnSelect: true,
      apiKey: "YOUR API KEY",
      limit: 10,
      language: 'pt',
      country: 'br',
      searchHint: 'Pesquisar',
      awaitingForLocation: "Procurando por sua localização",

      customMarkerIcon: Image.asset(
        "assets/marker.png",
      ),

      customMapLayer: TileLayerOptions(
        urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
        subdomains: ['a', 'b', 'c']
      ),

      onSelected: (place) {
        setState(() {
          _pickedLocationText = place.geometry
              .coordinates; // Example of how to call the coordinates after using the Mapbox Location Picker
          print(_pickedLocationText);
        });
      },
      context: context,
    );
  }
Aliati Software Development Team
Team Members Role Github Email
Lucas Finoti CEO https://github.com/FinotiLucas lucas.finoti@protonmail.com
João Pedro Martins CTO https://github.com/jpmdodev jpmdo98@gmail.com
Credits

Everything that we use as a reference to make this project possible

Source Web Sites
Nominatim https://nominatim.org/release-docs/develop/
Open Street Map https://www.openstreetmap.org
Wikimedia Maps http://wikimapia.org/
Google Maps Location Picker https://pub.dev/packages/google_map_location_picker
Mapbox Search https://pub.dev/packages/mapbox_search
Development

Want to contribute? Great!

Sharing code makes the world a better place <3

Support

Help us to continue developing solutions for the community

Buy Me A Coffee

License

Apache License 2.0

Copyright (c) 2020 Aliati Sotware, Lucas Finoti and João Pedro Martins

See more about the license

카테고리

의존성

의존성 목록 5 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.