dart 如何在Flutter中离线使用地理编码

yxyvkwin  于 2023-07-31  发布在  Flutter
关注(0)|答案(1)|浏览(123)

在textformField中输入地名并提交,然后将摄像机位置移动到该位置,并在设备当前位置到目的地之间绘制线,并显示它们之间的距离。但所有这些东西都是完全离线的。
void _onSubmitLocation()async { final String enteredLocation = locationName.text;

if (enteredLocation.isNotEmpty) {
  try {
    List<geocoding.Location> locations =
        await geocoding.locationFromAddress(enteredLocation);

    if (locations.isNotEmpty) {
      // Assuming the first location returned is the most relevant one
      final geocoding.Location firstLocation = locations.first;
      final LatLng newLocation =
          LatLng(firstLocation.latitude!, firstLocation.longitude!);

      mapController?.animateCamera(CameraUpdate.newLatLngZoom(
        newLocation,
        14, // You can adjust the zoom level as needed
      ));
    } else {
      // Handle case when no locations are found for the entered address
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(
        content: const Text("Location not found"),
        backgroundColor: Theme.of(context).colorScheme.error,
        duration: const Duration(seconds: 3),
      ));
    }
  } catch (e) {
    // Handle any errors that may occur during geocoding
    ScaffoldMessenger.of(context).showSnackBar(SnackBar(
      content: const Text("Error finding location"),
      backgroundColor: Theme.of(context).colorScheme.error,
      duration: const Duration(seconds: 3),
    ));
  }
}

字符串
}
这些代码只在网上工作,但我需要离线。如何使这些代码供脱机使用。

fd3cxomn

fd3cxomn1#

简短回答:您无法脱机使用地理编码。
详细回答:根据文档:
此插件使用iOS和Android平台提供的免费地理编码服务。这意味着它们的使用受到限制。
为了让Google和Apple跟踪和限制您的使用。当调用API时,您需要有一个互联网连接。

相关问题