Карта с маркерами

Поиск по карте - это отдельный режим работы компонента Таблица.
Смотреть пример карты с точками


Как настроить карту

Для показа карты, необходимо сделать следующее: 

  1. Создать таблицу с колонками (все строки)
    1. id - идентификатор точки (для возможных операций с точкой),
    2. lat - долгота точки, 
    3. lng - широта точки, 
    4. description - описание, которое появляется в окне при клике на маркер точки,
    5. tooltip - всплывающая подсказка при наведении на точку, 
    6. radius - радиус региона. 
    7. canDrag - если 1, то точки можно перемещать по карте и сохранять в базе новые значения (при перемещении вызывается updateItemField с code=marker, id=id точки и value = "lat||lng")
    8. Дополнительно можно добавить следующие столбцы (стилизация точек и регионов) 
      1. fillColor: '#a0bfeb',
      2. fillOpacity: 0.2,
      3. strokeColor: '#000000',
      4. strokeOpacity: 1,
      5. strokeWeight: 1
  2. Прописать запрос GetItems
    1. MapShowUserLocation bit - показывать пользователя на карте? 
    2. MapUserImageUrl nvarchar(256) - путь к картинке пользователя.
    3. MapShowAllRegions bit - показать все локации обслуживания всех точек
    4. MapShowLocationInRange bit - показать локацию, в которую попадает пользователь
    1.   SELECT 1(с колонками id int, lat nvarchar(32), lng nvarchar(32), description nvarchar(max), tooltip nvarchar(128), radius int)
    2. в SELECT 3 ставим ViewType='map',доп параметры в SELECT 3 
Примечание: 
  1. Карта будет работать только в случае, если вы указали ключ Google API в GetLayout (GeoLocationKey).
  2. В description к маркеру можно вставлять сниппеты компонентов (например, Форму). Инициализация компонентов идет по клику на маркере.
  3. В общем случае моменты с координатами передаем в формате lat||lng||text_address (в UpdateField передается lat||lng)
 Если точки можно перемещать, то также реализуем процедуру UpdateField

CREATE PROCEDURE [dbo].[crud_testMap_updateField]
	@itemID int,
	@field nvarchar(64),
	@value nvarchar(max),
	@username nvarchar(64)
AS
BEGIN

if(@field = 'marker') begin
	declare @lat nvarchar(32), @lng nvarchar(32)
	set @lat = [dbo].[str_splitPart](@value,  '||',	1	)
	set @lng = [dbo].[str_splitPart](@value,  '||',	2	)

	update tst_addresses
    set lat = @lat, lng = @lng
    where id = @itemID
end else begin
	select 'Невалидный код свойства' Msg, 0 Result
	return
end
select '' Msg, 1 Result

END

В SELECT 3 также можно передать параметр mapOptions, в котором устаналиваются настройки карты в виде JSON. Документация по настойкам карты Гугл - https://developers.google.com/maps/documentation/javascript/interaction

Пример настройки: 

-- 3 SELECT Дополнительные настройки таблицы
select 'map' ViewType,
	0 MapShowUserLocation,
        '' MapUserImageUrl,
        0 MapShowAllRegions,
        0 MapShowLocationInRange,
        1 HideTitleCount, ' ' Title,
            '{
                "center":{"lat": 39.913818, "lng": 116.363625},
                "zoom": 4,
                "fitBound": false,
                "afterMoveMarkerRefreshContainer": "body"

            }' MapOptions

Кастомные настройки (которые не относятся к плагину карты Google). 

  • fitBound - если 1, то карта будет адаптировать zoom и область, чтобы вывести все выбранные точки. 
  • afterMoveMarkerRefreshContainer - указываем селектор контентера, который надо обновлять после перемещения точки (например, чтобы обновить какую-то форму или таблицу на странице).
  • mapCenter - задает центр карты в виде {"lat": 12.34234, "lng": 43.2321}

Возможные проблемы с картой

Если появляется серый прямоугольник вместо карты и нет ошибок в консоли, это означает, что вам необходимо установить параметры zoom и mapCenter. Пример: 

-- SELECT 3
SELECT  '{
        	"zoom":9,
            "mapCenter": {"lat":55.760533, "lng": 37.487028}
        }' MapOptions

Альтернатива - использовать fitBound=1 (в этом случае карта (ее center и zoom) будет адаптироваться под точки на ней). 

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Бесплатное обучение разработке на Falcon Space

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space.
Примечание