Виндев моб, адрес в координатах - PullRequest
0 голосов
/ 12 июня 2018

Я создаю приложение для Android с Windev Mobile.Я могу открыть карту, используя переменные, в которых указаны адрес и город, но я не могу получить маркер на карте таким же образом.ggladdresstocoordinates не работает для windev mobile.

Мой текущий код:

//MapDisplayPosition(MAP_Worklocation, Street, City, country)
MyAddress is Address
MyAddress..Street = gnWorkaddress
MyAddress..City = gnWorkplace
MyAddress..Country = "Netherlands"

// Centers the map displayed by the "MAP_Position" control from an address
MapDisplayPosition(MAP_Worklocation, MyAddress)

MAP_Worklocation..Zoom = 17

mymarker is Marker
mymarker..Position = MyAddress
MapAddMarker(MAP_Worklocation, mymarker)

Ответы [ 2 ]

0 голосов
/ 10 июля 2018

Я думаю, что проблема в функции MapDisplayPosition, второй параметр должен быть переменной geoPostiion, как вы можете видеть в справке ИЛИ это может быть строка с адресом, вы пробовали:

sAddress is string = gnWorkaddress + ", " + gnWorkplace + ", " + "Netherlands"

MapDisplayPosition(MAP_Worklocation, sAddress)

Кроме того, вы не можете назначить Address и ..Position, вам нужна переменная geoPosition;после центрирования карты с помощью MapDisplayPosition вы можете получить позицию с помощью:

TmpPos is geoPosition
TmpPos = MapGetPosition(MAP_Worklocation)

, а затем добавить маркер:

MyMarker is Marker
MyMarker..Position = TmpPos
MyMarker..ActionClick = ProcMarkerClick

MapAddMarker(MAP_Worklocation, MyMarker)

Попробуйте с этим, я лично нашел другой обходной путь, потому что изи адрес (stree, почтовый индекс, город ...), записанный во время регистрации, мне нужен был gps-код, поэтому я использовал Google Maps Apis :

oQuery  is httpRequest

// Replace blank spaces with +, for URL.
sTempStreet is string = Replace(MyStreet," ","+")
sTempCity is string = Replace(MyCity," ","+")

oQuery..URL     = "https://maps.googleapis.com/maps/api/geocode/json?address="+sTempStreet+",+"+sTempCity+"+"+stTempZIP+"+"+stTempCountry+",+stTempState&key=*<yourapikeyhere>*"
oQuery..Method  = httpGet

oResponse is httpResponse
oResponse = HTTPSend(oQuery)

vInfo       is Variant
vInfo = JSONToVariant(oResponse..Content)

sGPSLatitude = vInfo.results[1].geometry.location.lat
sGPSLongidute = vInfo.results[1].geometry.location.lng
0 голосов
/ 02 июля 2018

после использования MapDisplayPosition, карта будет центрирована в искомом местоположении, затем, если вы используете MapGetPosition, она вернет координаты.Из справки Windev: MapGetPosition - «Возвращает географическое положение точки, расположенной в центре карты, отображаемой в данный момент в элементе управления карты.»

MyPosition is geoPosition
MyPosition = MapGetPosition(MAP_Worklocation)
EDT_Latitude=MyPosition..Latitude
EDT_Longitude=MyPosition..Longitude
...