简体   繁体   English

在 Tomtom Map API 中使用折线

[英]Using polyline in Tomtom Map API

I have a problem in my code where I can't create the route for the final markup.我的代码有问题,我无法为最终标记创建路由。 Today my code only marks the final address through the Tomtom API, but I am not able to make the trajectory between the points.今天我的代码只是通过Tomtom API标记了最终地址,但我无法在点之间制作轨迹。

I have no idea how to achieve this in the tomtom API.我不知道如何在 tomtom API 中实现这一点。

import "package:flutter/material.dart";
import "package:flutter_map/flutter_map.dart";
import 'package:geolocator/geolocator.dart';
import "package:latlong2/latlong.dart";
import "package:http/http.dart" as http;
import "dart:convert" as convert;
import 'package:location/location.dart';
import 'package:flutter_polyline_points/flutter_polyline_points.dart';
import 'package:syncfusion_flutter_maps/maps.dart';

class mapa extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return mapaState();
  }
}

class mapaState extends State<mapa> {
  final String apiKey = "5ffCTiHClrJBxXGqLadlrjmh3vFVxCVs";
  final List<Marker> markers = List.empty(growable: true);

  @override
  Widget build(BuildContext context) {
    final tomtomHQ = new LatLng(-23.7512754, -46.6824583);

    final initialMarker = new Marker(
      width: 50.0,
      height: 50.0,
      point: tomtomHQ,
      builder: (BuildContext context) =>
          const Icon(Icons.location_on, size: 60.0, color: Colors.red),
    );
    markers.add(initialMarker);

    getAddresses(value, lat, lon) async {
      final Map<String, String> queryParameters = {'key': '$apiKey'};
      queryParameters['lat'] = '$lat';
      queryParameters['lon'] = '$lon';
      var response = await http.get(Uri.https(
          'api.tomtom.com', '/search/2/search/$value.json', queryParameters));
      var jsonData = convert.jsonDecode(response.body);
      print('$jsonData');
      var results = jsonData['results'];
      for (var element in results) {
        var position = element['position'];
        var marker = new Marker(
          point: new LatLng(position['lat'], position['lon']),
          width: 50.0,
          height: 50.0,
          builder: (BuildContext context) =>
              const Icon(Icons.location_on, size: 40.0, color: Colors.blue),
        );
        markers.add(marker);
      }
    }

    return MaterialApp(
      title: "TomTom Map",
      home: Scaffold(
        resizeToAvoidBottomInset: false,
        body: Center(
            child: Stack(
          children: <Widget>[
            FlutterMap(
              options: new MapOptions(center: tomtomHQ, zoom: 13.0),
              layers: [
                new TileLayerOptions(
                  urlTemplate: "https://api.tomtom.com/map/1/tile/basic/main/"
                      "{z}/{x}/{y}.png?key={apiKey}",
                  additionalOptions: {"apiKey": apiKey},
                ),
                new MarkerLayerOptions(
                  markers: markers,
                ),
              ],
            ),
            Container(
                padding: EdgeInsets.only(top: 50),
                alignment: Alignment.topRight,
                child: TextField(
                  onSubmitted: (value) {
                    print('$value');
                    getAddresses(value, tomtomHQ.latitude, tomtomHQ.longitude);
                  },
                ))
          ],
        )),
      ),
    );
  }
}

You are using flutter_map, so the best would be to use PolylineLayer() to create a layer with a polyline with points retrieved from TomTom Routing API .您正在使用 flutter_map,因此最好是使用PolylineLayer()创建一个包含从TomTom Routing API检索的点的折线的层。 List of points needs to be converted from需要转换的点列表

[{
  "latitude": 52.50931,
  "longitude": 13.42937
},]

to

[LatLng(52.50931, 13.42937),]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用tomtom location API Android获取用户之间的距离 - Get distance between users using tomtom location api android 折线宽度转换图API v2 - polyline width conversion map api v2 如何使用Google Map API V2在建筑物或特定地点周围创建折线/多边形? - How to create a polyline/polygon around building or specific place using google map api v2? 位置使用折线选项更改地图上的毛刺 - Location change glitches on map using polyline options 使用折线和数组列表在地图中添加多个点 - Adding multiple points in map using polyline and arraylist 如何在 kotlin 中更改 tomtom 地图的标记 - How to change tomtom map's marker in kotlin 启用在 kotlin 中使用 tomtom 搜索 api - enable to use tomtom search api in kotlin 谷歌地图 Android API v2 - 折线上的 InfoWindow? - Google map Android API v2 - InfoWindow on polyline? 无法在iOS上与Bing Map互动; Android不显示折线(Flex Mobile App,通过StageWebView使用Javascript API) - Cannot interact with Bing Map on iOS; Android does not show polyline (Flex Mobile App, using Javascript API through StageWebView) 我可以在Android Google Map API中设置折线不透明度吗 - Can I set polyline opacity in Android Google map API
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM