Windev移动,地址到坐标



我正在使用windev mobile构建一个Android应用程序。我可以使用说明地址和城市的变量打开地图,但我似乎无法以相同的方式在地图上获得标记。GgladdressTo坐标不适用于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)

我认为问题出在 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代码,所以我使用了谷歌地图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

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

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

相关内容

  • 没有找到相关文章

最新更新