GMLib Delphi, Попытка создать пробное концептуальное приложение, Карта, Геокод, Маркеры

У меня есть основная часть работы/отображения приложения/карты. Но когда я пытаюсь геокодировать несколько адресов, а затем отображать маркеры, мне показывается только последний адрес. На карте будет отображаться только последний адрес.

  GMGeoCode1.Geocode('address 1 anytown st');
  GMGeoCode1.Geocode('address 2 anytown st');
    for I := 0 to GMGeoCode1.Count - 1 do
    begin
    GMGeoCode1.Marker.Add(GMGeoCode1.GeoResult [i] .Geometry.Location.Lat,
           GMGeoCode1.GeoResult [i] .Geometry.Location.Lng,
           GMGeoCode1.GeoResult [i] .FormatedAddr);
         GMGeoCode1.Marker.Items [i] .MarkerType := mtStyledMarker;
    end;

person user3745651    schedule 23.12.2015    source источник
comment
Я заработал эту часть, отключив свойство GMGeoCode для свойства Marker. Теперь я пытаюсь добавить в процесс gecode больше, чем базовые 10 адресов. Я пошел и подал заявку на apikey (сервер и браузер), но ни один из этих ключей не имеет значения в тестовом проекте, который я создал. Как я могу получить более 10 адресов, чтобы геокодировать место маркера для них на карте?   -  person user3745651    schedule 24.12.2015


Ответы (1)


Компонент TGMGeoCode может хранить только одно геокодирование. Массив GeoResult связан с тем, что геокодирование может возвращать более одного результата. Например, если вы геокодируете Толедо, определяя США как регион, вы получите 4 результата 1.- Толедо, Огайо 2.- Толедо, Орегон 3.- Толедо, Айова 4.- Толедо, Вашингтон

GeoResult будет иметь 4 записи, по одной для каждого результата.

Если вы хотите сохранить все геокодировки, вам нужно добавлять результаты в TGMMarker при каждой геокодировке.

person cadetill    schedule 25.12.2015
comment
Спасибо, что я пошел. - person user3745651; 25.01.2016