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

GitHub 代码仓YudizAndroidPayal/flutter_nominatim

flutter_nominatim

一个用于免费地理编码和地点搜索的 Flutter 插件,使用 OpenStreetMap 的 Nominatim 服务,内置优化且无需 API 密钥

flutter_nominatim 项目封面
星标
0
复刻
1
最近推送(UTC)
2024年12月20日
项目状态
未归档

原始 README

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

GitHub code size Pub License: MIT package publisher

flutter_nominatim

Completely Free & Open Source! Unlike other geocoding services, Nominatim is 100% free to use with NO API key required. You can start implementing location features in your app immediately without any payment or API key setup.

Example Screenshots 📸

Place Search Convert LatLng to Address Convert Address to LatLng
Auto-complete search with realtime results Convert coordinates to human-readable address Convert address to geographical coordinates
Key Benefits
Feature Description Benefit
💰 Free Forever No API key, no pricing tiers Save hundreds of dollars compared to paid geocoding services
🔑 No Authentication No API keys or tokens needed Quick implementation without setup hassle
🌍 Global Coverage Worldwide address database Works everywhere your app does
🚀 Easy Integration Simple API methods Get started in minutes
⚡ Performance Optimized Built-in rate limiting & caching Smooth user experience

Features Overview

1. Place Search 🔍
  • Auto-complete with debouncing
  • Real-time results as you type
  • Most relevant matches
  • Rich place details
  • Polygon Boundaries for places
2. Geocoding Services
Service Description Example
Forward Geocoding Convert address to coordinates "London Bridge" → (51.5074, -0.1278)
Reverse Geocoding Convert coordinates to address (51.5074, -0.1278) → "London Bridge, London, UK"
3. Built-in Optimizations
  • Automatic request debouncing
  • Rate limit handling
  • Error management
  • Input validation

Quick Start

Installation
dependencies:
  flutter_nominatim: ^1.0.0
Basic Usage
// Initialize
final nominatim = Nominatim.instance;

// Search places
final results = await nominatim.search("London");

// Get address from coordinates
final address = await nominatim.getAddressFromLatLng(51.5074, -0.1278);

// Get coordinates from address
final coordinates = await nominatim.getLatLngFromAddress("London Bridge");

Implementation Examples

Auto-complete Search Widget
TextField(
  controller: searchController,
  decoration: const InputDecoration(
    hintText: 'Search places...',
    prefixIcon: Icon(Icons.search),
  ),
  onChanged: (query) {
    if (query.length >= 3) {
      nominatim.search(query).then((results) {
        // Handle results
      });
    }
  },
)

Usage Guidelines

Input Constraints
Parameter Range/Format Example
Latitude -90 to 90 51.5074
Longitude -180 to 180 -0.1278
Search Query Min 3 characters "London"
Rate Limiting
  • Maximum 1 request per second
  • Built-in request management
  • Automatic request queuing

Why It's Free & Open

Nominatim is powered by OpenStreetMap, the world's largest collaborative mapping project. This means:

  • 🆓 Completely Free: No hidden costs or subscription fees
  • 🔓 No API Key Required: Start developing immediately
  • 🌐 Community Driven: Regular updates from global contributors
  • 📈 Constantly Improving: Database grows and improves daily

Attribution Requirements

When using this plugin, include:

© OpenStreetMap contributors

Support & Contribution

We welcome:

  • 🐛 Bug reports
  • 💡 Feature suggestions
  • 🤝 Pull requests
  • 📖 Documentation improvements

License

MIT License - feel free to use in your projects!

Visitors Count

Loading
Payal Senjaliya GitHub avatar
GitHub 作者

Payal Senjaliya ↗

语言DartRubySwiftKotlinJavaObjective-C

此仓库发布的插件

使用的依赖

依赖清单 4 项

  • flutter{"sdk":"flutter"}
  • dio^5.3.2
  • flutter_test开发依赖{"sdk":"flutter"}
  • flutter_lints开发依赖^3.0.0

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

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

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

来源与维护

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

GitHub Docs — About repositories ↗