0

我正在用windev mobile 构建一个android 应用程序。我可以使用说明地址和城市的变量打开地图,但我似乎无法以同样的方式在地图上找到标记。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)
4

2 回答 2

0

我认为问题出在 MapDisplayPosition 函数中,第二个参数必须是 geoPostiion 变量,正如您在帮助中看到的那样,或者它可能是带有地址的字符串,您是否尝试过:

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

MapDisplayPosition(MAP_Worklocation, sAddress)

此外,您不能将 and 分配Address给 a ..Position,您需要一个 geoPosition 变量;使用 MapDisplayPosition 将地图居中后,您可以使用以下命令检索位置:

TmpPos is geoPosition
TmpPos = MapGetPosition(MAP_Worklocation)

然后添加标记:

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

MapAddMarker(MAP_Worklocation, MyMarker)

试试这个,我个人找到了一个不同的解决方法,因为在注册期间写了 from 和 address (stree, zip code, city...),我需要 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
于 2018-07-10T08:21:22.217 回答
0

使用 MapDisplayPosition 后,地图将以搜索到的位置为中心,然后如果使用 MapGetPosition,它将返回坐标。来自 Windev 帮助:MapGetPosition - “返回位于地图中心当前显示在地图控件中的点的地理位置。”

MyPosition is geoPosition
MyPosition = MapGetPosition(MAP_Worklocation)
EDT_Latitude=MyPosition..Latitude
EDT_Longitude=MyPosition..Longitude
于 2018-07-02T09:40:00.850 回答