在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),
));
}
}
字符串
}
这些代码只在网上工作,但我需要离线。如何使这些代码供脱机使用。
1条答案
按热度按时间fd3cxomn1#
简短回答:您无法脱机使用地理编码。
详细回答:根据文档:
此插件使用iOS和Android平台提供的免费地理编码服务。这意味着它们的使用受到限制。
为了让Google和Apple跟踪和限制您的使用。当调用API时,您需要有一个互联网连接。