MapAppDev
description: 提供2D、3D的地图服务:包括地球尺度的虚拟土地的浏览、买卖、交易、基于Map的广告、个人地图、搜索等等
Map app for Paraworld
| Title |
Map app for Paraworld |
| Author(s) |
ParaEngine Map Team |
| Date |
2008/1/24 |
| File |
script/kids/3DMapSystemUI/Map/app_main.lua |
Description
Get Tile By ID
more info, see code doc.
Map3DSystem.App.Map.GetTileByID(tileID, callback, param1)
INSERT INTO apps VALUES (NULL, 'Map_GUID', 'Map', '1.0.0', 'http://www.paraengine.com/apps/Map_v1.zip', 'YourCompany', 'enUS', 'script/kids/3DMapSystemUI/Map/IP.xml', '', 'script/kids/3DMapSystemUI/Map/app_main.lua', 'Map3DSystem.App.Map.MSGProc', 1);
Sample Code
NPL.load("(gl)script/kids/3DMapSystemUI/Map/app_main.lua");
Member Functions
Map3DSystem.App.Map.OnConnection
requires
create class
commonlib.setfield("Map3DSystem.App.Map", {});
event handlers
OnConnection? method is the obvious point to place your UI (menus, mainbars, tool buttons) through which the user will communicate to the app.
This method is also the place to put your validation code if you are licensing the add-in. You would normally do this before putting up the UI.
If the user is not a valid user, you would not want to put the UI into the IDE.
- param app : the object representing the current application in the IDE.
- param connectMode : type of Map3DSystem? .App.ConnectMode.
syntax
function Map3DSystem.App.Map.OnConnection(app, connectMode)
parameters
| app |
the object representing the current application in the IDE. |
| connectMode |
|
Map3DSystem.App.Map.OnDisconnection
Receives notification that the Add-in is being unloaded.
syntax
function Map3DSystem.App.Map.OnDisconnection(app, disconnectMode)
parameters
Map3DSystem.App.Map.OnQueryStatus
This is called when the command's availability is updated
When the user clicks a command (menu or mainbar button), the
QueryStatus? event is fired.
The
QueryStatus? event returns the current status of the specified named command, whether it is enabled, disabled,
or hidden in the
CommandStatus? parameter, which is passed to the msg by reference (or returned in the event handler).
- param commandName : The name of the command to determine state for. Usually in the string format "Category.SubCate.Name".
- param statusWanted : what status of the command is queried. it is of type Map3DSystem? .App.CommandStatusWanted
- return __ : returns according to statusWanted. it may return an integer by adding values in Map3DSystem? .App.CommandStatus.
syntax
function Map3DSystem.App.Map.OnQueryStatus(app, commandName, statusWanted)
parameters
| app |
|
| commandName |
The name of the command to determine state for. Usually in the string format "Category.SubCate.Name". |
| statusWanted |
|
| return |
returns according to statusWanted. it may return an integer by adding values in Map3DSystem? .App.CommandStatus. |
Map3DSystem.App.Map.OnExec
This is called when the command is invoked.The Exec is fired after the
QueryStatus? event is fired, assuming that the return to the statusOption parameter of
QueryStatus? is supported and enabled.
This is the event where you place the actual code for handling the response to the user click on the command.
- param commandName : The name of the command to determine state for. Usually in the string format "Category.SubCate.Name".
syntax
function Map3DSystem.App.Map.OnExec(app, commandName, params)
parameters
| app |
|
| commandName |
The name of the command to determine state for. Usually in the string format "Category.SubCate.Name". |
| params |
|
Map3DSystem.App.Map.OnRenderBox
Change and render the 3D world with mcml data that is usually retrieved from the current user's profile page for this application.
syntax
function Map3DSystem.App.Map.OnRenderBox(mcmlData)
parameters
Map3DSystem.App.Map.Navigate
called when the user wants to nagivate to the 3D world location relavent to this application
syntax
function Map3DSystem.App.Map.Navigate()
Map3DSystem.App.Map.GotoHomepage
called when user clicks to check out the homepage of this application. Homepage usually includes:
developer info, support, developer worlds information, app global news, app updates, all community user rating, active users, trade, currency transfer, etc.
syntax
function Map3DSystem.App.Map.GotoHomepage()
Map3DSystem.App.Map.DoQuickAction
called when user clicks the quick action for this application.
syntax
function Map3DSystem.App.Map.DoQuickAction()
Map3DSystem.App.Map.OnActivateDesktop
Add terrain, sky and ocean button to the toolbar.
syntax
function Map3DSystem.App.Map.OnActivateDesktop()
Map3DSystem.App.Map.OnDeactivateDesktop
syntax
function Map3DSystem.App.Map.OnDeactivateDesktop()
Map3DSystem.App.Map.MSGProc
client world database function helpers.
all related messages
APPS can be invoked in many ways:
Through app Manager
mainbar or menu command or buttons
Command Line
3D World installed apps
syntax
function Map3DSystem.App.Map.MSGProc(window, msg)
parameters
Map3DSystem.App.Map.GetTileByID
this is wrapper function of paraworld.map.GetTileByID
- param tileID : tile id, or its string.
- param callback : function of (tileInfo, param1)
- param param1 : an optional parameter passed to callback. this can be nil.
- return __ : it will return true it is fetching or already fetched.
syntax
function Map3DSystem.App.Map.GetTileByID(tileID, callback, param1)
parameters
| tileID |
tile id, or its string. |
| callback |
|
| param1 |
an optional parameter passed to callback. this can be nil. |
Map3DSystem.App.Map.GetTileByIDCallBack
callback
syntax
function Map3DSystem.App.Map.GetTileByIDCallBack(msg,args)
parameters
Member Functions
BuyRandomTileCmd.OnGetResult
private
syntax
function BuyRandomTileCmd.OnGetResult(self,tileID,isSuccess,errorCode)
parameters
| self |
|
| tileID |
|
| isSuccess |
|
| errorCode |
|
BuyRandomTileCmd:OnCmdDone
private
syntax
function BuyRandomTileCmd:OnCmdDone(tileID,isSuccess)
parameters
some helper function convert DB data type to run time data type
| Title |
some helper function convert DB data type to run time data type |
| Author(s) |
Clayman |
| Date |
Desc: |
| File |
script/kids/3DMapSystemUI/Map/DataPvdHelper.lua |
Description
Sample Code
--NPL.load("(gl)script/kids/3DMapSystemUI/Map/DataPvdHelper.lua");
Member Functions
helper.ParseTexture
texture string format is something like:
"*/*/../*.*;
/*/../.*"
syntax
function helper.ParseTexture(textureString)
parameters
helper.ParseTileInfo
convert data base tileInfo type to runtime type
syntax
function helper.ParseTileInfo(msg)
parameters
helper.ConvertModel2RunType
convert data base modelInfo to runtime type
syntax
function helper.ConvertModel2RunType(dbModelData)
parameters
Member Functions
landCell:SetTileInfo
private
syntax
function landCell:SetTileInfo(tileInfo)
parameters
landCell:UpdateTerrainPos
private,update terrain position
syntax
function landCell:UpdateTerrainPos()
landCell:UpdateModelPos
private,update model position
syntax
function landCell:UpdateModelPos()
landCell:UpdateMarkPos
private,update mark position
syntax
function landCell:UpdateMarkPos()
landCell:RefreshModels
private,create new models
syntax
function landCell:RefreshModels()
landCell:Clear
clear all models,marks,reset terrain to default state
syntax
function landCell:Clear()
landCell:ResetTerrain
private,reset terrain to default state
syntax
function landCell:ResetTerrain()
landCell:RemoveModels
private,clear all building models
syntax
function landCell:RemoveModels()
landCell:RemoveMarks
private,clear all marks on this tile
syntax
function landCell:RemoveMarks(bShow)
parameters
landCell.OnReceiveTileInfo
data privder
GetTileInfo? () callback function
syntax
function landCell.OnReceiveTileInfo(receiver,tileInfo)
parameters
land generator
| Title |
land generator |
| Author(s) |
SunLingFeng? |
| Date |
2008/1/25 |
| File |
script/kids/3DMapSystemUI/Map/landGenerator.lua |
Description
Member Functions
landGen.QueryTileType
private
syntax
function landGen.QueryTileType(norPosX,norPosY)
parameters
Member Functions
Map3DSystem.Map.map2DLayer.Initialization
the current map level, the initial map level is 1
Map3DSystem? .Map.map2DLayer.zoomLvl = 1;
how many map levels to allow the users to zoom in.
Map3DSystem? .Map.map2DLayer.maxZoomLvl = 5;
Map3DSystem? .Map.map2DLayer.maxCamDist = 0;
Map3DSystem? .Map.map2DLayer.minCamDist = 15;
Map3DSystem? .Map.map2DLayer.elevation = 0;
Map3DSystem? .Map.map2DLayer.camPitch = math.pi/2 - 0.001;
Map3DSystem? .Map.map2DLayer.zoomSpan = 0.4;
Map3DSystem? .Map.map2DLayer.isInited = false;
Map3DSystem? .Map.map2DLayer.viewElevation = 1;
Map3DSystem? .Map.map2DLayer.OnCamOutOfRange = nil;
syntax
function Map3DSystem.Map.map2DLayer.Initialization()
Map3DSystem.Map.map2DLayer.Reset
reset the map and camera to default state
syntax
function Map3DSystem.Map.map2DLayer.Reset()
Map3DSystem.Map.map2DLayer.Move
move map for a given distance
dx,dy is in screen unit
syntax
function Map3DSystem.Map.map2DLayer.Move(dx,dy)
parameters
Map3DSystem.Map.map2DLayer.SetViewPosition
view position is the center point of viewRegion in world coordinate[0,1]
we'll update tile position base on current view position
syntax
function Map3DSystem.Map.map2DLayer.SetViewPosition(x,y)
parameters
Map3DSystem.Map.map2DLayer.Update
update tile position after zoom or move
syntax
function Map3DSystem.Map.map2DLayer.Update()
Map3DSystem.Map.map2DLayer.CheckBound
check if the view position is valid after zoom or move
syntax
function Map3DSystem.Map.map2DLayer.CheckBound()
Map3DSystem.Map.map2DLayer.GetMapSize
get the current map size in screen coordinate
the size is different for each level
syntax
function Map3DSystem.Map.map2DLayer.GetMapSize()
Map3DSystem.Map.map2DLayer.GetCamera
return the virtCam
syntax
function Map3DSystem.Map.map2DLayer.GetCamera()
Map 2D Layer Display management
| Title |
Map 2D Layer Display management |
| Author(s) |
SunLingFeng? |
| Date |
2007/10/10 |
| File |
script/kids/3DMapSystemUI/Map/Map2DLayer_v2.lua |
Description
Member Functions
Map3DSystem.Map.map2DLayer.Initialization
the current map level, the initial map level is 1
Map3DSystem? .Map.map2DLayer.zoomLvl = 1;
how many map levels to allow the users to zoom in.
Map3DSystem? .Map.map2DLayer.maxZoomLvl = 3;
intenal use
Map3DSystem? .Map.map2DLayer.maxCamDist = nil;
Map3DSystem? .Map.map2DLayer.minCamDist = nil;
Map3DSystem? .Map.map2DLayer.elevation = 0;
Map3DSystem? .Map.map2DLayer.camPitch = math.pi/2 - 0.001;
Map3DSystem? .Map.map2DLayer.zoomSpan = 0.4;
Map3DSystem? .Map.map2DLayer.isInited = false;
this actually log2(Elev), since the camera zooms in uniformly by log2(e) unit
Map3DSystem? .Map.map2DLayer.viewElevation = 0;
Map3DSystem? .Map.map2DLayer.OnCamOutOfRange = nil;
public functions
call this function only once to create shared resources in the mini 3D scene, etc
syntax
function Map3DSystem.Map.map2DLayer.Initialization()
Map3DSystem.Map.map2DLayer.Reset
reset the map. the camera is set to look at the center of the map from the largest distance.
syntax
function Map3DSystem.Map.map2DLayer.Reset()
Map3DSystem.Map.map2DLayer.Show
show or hide 2D map layer, Since the same mini 3d scene will be used to display both 3d and 2d map,
this function can be used to toggle display
syntax
function Map3DSystem.Map.map2DLayer.Show(bShow)
parameters
Map3DSystem.Map.map2DLayer.Move
move map by a delta distance
- param dx :,dy: this is in pixel.
syntax
function Map3DSystem.Map.map2DLayer.Move(dx,dy)
parameters
| dx |
,dy: this is in pixel. |
| dy |
|
Map3DSystem.Map.map2DLayer.SetViewPosition
Set the look at position of the camera.
the map display is automatically updated.
- param x :,y: should be specified in world unit, which is in range [0,1]
syntax
function Map3DSystem.Map.map2DLayer.SetViewPosition(x,y)
parameters
| x |
,y: should be specified in world unit, which is in range [0,1] |
| y |
|
Map3DSystem.Map.map2DLayer.SetCamElevation
Set the distance from the camera eye position to the look at position.
It will automatically set the proper map level and update the map display.
- param elevation : in screen unit.
syntax
function Map3DSystem.Map.map2DLayer.SetCamElevation(elevation)
parameters
| elevation |
in screen unit. |
Map3DSystem.Map.map2DLayer.Update
private functions
private: update tile position according to current virtual camera position and map level.
one needs to call this to update map tile position and textures, such as after mouse zoom or move operation.
syntax
function Map3DSystem.Map.map2DLayer.Update()
Map3DSystem.Map.map2DLayer.CheckBound
private: check if the self.virtCam's view position is valid after zoom or move
syntax
function Map3DSystem.Map.map2DLayer.CheckBound()
Map3DSystem.Map.map2DLayer.GetMapSize
get the current map size in screen unit. map_size = screen_tile_size * how_many_tiles_per_line_in_the_level
the size is different for different level
syntax
function Map3DSystem.Map.map2DLayer.GetMapSize()
Map3DSystem.Map.map2DLayer.GetCamera
return the virtual Camera
syntax
function Map3DSystem.Map.map2DLayer.GetCamera()
the map app entry point
| Title |
the map app entry point |
| Author(s) |
SunLingFeng? |
| Date |
2008/1/10 |
| File |
script/kids/3DMapSystemUI/Map/Map3DApp.lua |
Description
Member Functions
MainWnd:new
======display model enum=======
MainWnd? .DisplayMode = {};
MainWnd? .DisplayMode.normal = 0;
MainWnd? .DisplayMode.edit = 1;
======public===================
syntax
function MainWnd:new(o)
parameters
MainWnd:CreateUI
==========private==============
syntax
function MainWnd:CreateUI()
Member Functions
mark3DInfo:new
[[
Map3DApp.MarkType = {};
Map3DApp.MarkType.player = 1;
Map3DApp.MarkType.event = 2;
Map3DApp.MarkType.city = 3;
Map3DApp.MarkType.ad = 4;
local mark3DInfo = {
markID = -1,
markType = Map3DApp.MarkType.player,
markModel = "", --string:mark model file
markTitle = "",
startTime = "",
endTime = "",
x = 0,
y = 0,
z = 0,
cityName = "",
rank = 0,
logo = "",
signature = "",
desc = "",
ageGroup = 0,
isApproved = false,
version = "",
ownerUserID = "",
clickCnt = 0,
worldID = -1,
allowEdit = false,
}
Mark3DInfo? = mark3DInfo;
syntax
function mark3DInfo:new(o)
parameters
SpriteAnimationPlayer?
| Title |
SpriteAnimationPlayer? |
| Author(s) |
SunLingfeng? @ paraengine.com |
| Date |
2008/1/29 |
| File |
script/kids/3DMapSystemUI/Map/Map3DAppAnimationPlayer.lua |
Description
SpriteAnimationPlayer? is a sprite sheet player,it receive a paraUIObject as
target window, draw animation on it.SpriteAnimationPlayer assume the sprite sheet texture
size is power of 2,eg,256*256,512*512. frameSize is the size of each frame in the
texture.
Sample Code
NPL.load("(gl)script/kids/3DMapSystemUI/Map/Map3DAppAnimationPlayer.lua");
local cloudPlayer = Map3DApp.SpriteAnimationPlayer:new{
name = self.cloudLayer,
targetWndName = self.name,
totalFrame = 16,
defaultFrame = 1,
frameSize = 256,
spriteSheet = "model/map3D/texture/clouds.dds",
};
cloudLayer:Play(false,false)
Member Functions
SpriteAnimationPlayer:new
=========public===============
syntax
function SpriteAnimationPlayer:new(o)
parameters
SpriteAnimationPlayer:Init
==============private============
syntax
function SpriteAnimationPlayer:Init()
Managing model and texture in map system.
| Title |
Managing model and texture in map system. |
| Author(s) |
SunLingfeng? @ paraengine.com |
| Date |
2007/10/18 |
| File |
script/kids/3DMapSystemUI/Map/Map3DAppAssetManager.lua |
Description
Sample Code
NPL.load("(gl)script/kids/3DMapSystemUI/Map/Map3DAppAssetManager.lua");
Member Functions
Map3DApp.Global.AssetManager.Destroy
delete all resources.
syntax
function Map3DApp.Global.AssetManager.Destroy()
Map3DApp.Global.AssetManager.GetModel
return managed
ParaAssetObject? by file name
syntax
function Map3DApp.Global.AssetManager.GetModel(modelName)
parameters
Map3DApp.Global.AssetManager.GetTexture
return managed
ParaAssetObject? by file name
syntax
function Map3DApp.Global.AssetManager.GetTexture(textureName)
parameters
Map3DApp.Global.AssetManager.UnloadModel
unload a given asset by file name
syntax
function Map3DApp.Global.AssetManager.UnloadModel(modelName)
parameters
Map3DApp.Global.AssetManager.UnloadTexture
unload a given asset by file name
syntax
function Map3DApp.Global.AssetManager.UnloadTexture(textureName)
parameters
Map3DApp.Global.AssetManager.GetMapTex
syntax
function Map3DApp.Global.AssetManager.GetMapTex(textureName)
parameters
Map3DApp.Global.AssetManager.GetCharacter
syntax
function Map3DApp.Global.AssetManager.GetCharacter(modelName)
parameters
Member Functions
MapBBSBar:new
-----MapBBSBar
local MapBBSBar = {
name = "rollingBar";
parent = nil;
--layout
alignment = "_lt";
left = 5;
top = 0;
width = 600;
height = 24;
--msg list,a circle queue
maxMsgCount = 30;
rollSpeed = 2;
--private data
billboards = {};
billboardCount = 4;
billboardSpace = 15;
freeBillboards = nil;
activeBillboards = nil;
font = nil;
fontColorCount = 1;
fontHighLight = "130 30 130";
timerID;
rollingState = Map3DApp.RollState.stop;
lastRollingState = Map3DApp.RollState.stop;
selectItem = nil;
--event
onItemSelect = nil;
onMsgPop = nil;
onMsgEmpty = nil;
}
MapBBSBar? =
MapBBSBar? ;
public
syntax
function MapBBSBar:new(o)
parameters
MapBBSBar:Destroy
public
syntax
function MapBBSBar:Destroy()
MapBBSBar:Show
public
syntax
function MapBBSBar:Show(bShow)
parameters
MapBBSBar:Init
private function, once called once on oject creation
syntax
function MapBBSBar:Init()
MapBBSBar:ResetUI
private function,reset all ui related object
call this method after sence reset
syntax
function MapBBSBar:ResetUI()
MapBBSBar.OnMouseEnter
private method,stop rolling when mouse enter a billboard
syntax
function MapBBSBar.OnMouseEnter(ctrName,index)
parameters
MapBBSBar.OnMouseLeave
private,resume rolling state when mouse leave billboard
syntax
function MapBBSBar.OnMouseLeave(ctrName,index)
parameters
MapBBSBar.OnMouseUp
private,fired when click on a billboard
syntax
function MapBBSBar.OnMouseUp(ctrName)
parameters
MapBBSBar:ActiveRolling
private,AddMessage will automatic call this method to roll when
new message come
syntax
function MapBBSBar:ActiveRolling()
MapBBSBar:Update
private,update display
syntax
function MapBBSBar:Update()
MapBBSBar:RefreshBillboard
private
syntax
function MapBBSBar:RefreshBillboard()
MapBBSBar:Rolling
private move the position of each billboard
syntax
function MapBBSBar:Rolling()
MapBBSBar:SetParent
public
syntax
function MapBBSBar:SetParent(_parent)
parameters
MapBBSBar:SetPosition
public
syntax
function MapBBSBar:SetPosition(x,y,width,height)
parameters
MapBBSBar:AddMessage
public
syntax
function MapBBSBar:AddMessage(newMsg)
parameters
MapBBSBar:PopMessage
public
syntax
function MapBBSBar:PopMessage()
MapBBSBar:Pause
public
syntax
function MapBBSBar:Pause()
MapBBSBar:Resume
public
syntax
function MapBBSBar:Resume()
MapBBSBar:IsMsgFull
public
syntax
function MapBBSBar:IsMsgFull()
MapBBSBar:SetFontColor
public
syntax
function MapBBSBar:SetFontColor(color,colorIndex)
parameters
Member Functions
MapBBSMsgEdit:new
------------------------------------
-----------MapBBSMsgEdit--------
------------------------------------
local MapBBSMsgEdit = {
name = "bbsMsgBox",
parent = nil,
alignment = "_lt",
x = 100,
y = 100,
width = 450,
height = 60,
textBox = nil;
onMsgSend = nil;
}
MapBBSMsgEdit? =
MapBBSMsgEdit? ;
syntax
function MapBBSMsgEdit:new(o)
parameters
MapBBSMsgViewer:new
-------------------------------------------------
------------MapBBSMsgViewer------------
-------------------------------------------------
local MapBBSMsgViewer = {
name = nil;
parent = nil;
alignment = "_lt",
x = 0,
y = 0,
width = 500,
height = 300,
--event
onItemSelect = nil;
onShow = nil;
}
MapBBSMsgViewer? =
MapBBSMsgViewer? ;
syntax
function MapBBSMsgViewer:new(o)
parameters
MapBBSMsgViewer.OnItemSelect
private,fire onMsgSelect event
syntax
function MapBBSMsgViewer.OnItemSelect(ctrName)
parameters
Member Functions
Map3DApp.Timer.GetNewTimerID
Default Font
DefaultFont? = "System";
timer id creator------------------------------
all timer id used in 3d map was created by this class
Map3DApp? .Timer = {};
Map3DApp? .Timer.minTimerID = 200;
Map3DApp? .Timer.maxTimerID =
Map3DApp? .Timer.minTimerID - 1;
syntax
function Map3DApp.Timer.GetNewTimerID()
Queue:new
-----------------------------
----------Queue--------------
local Queue = {
list = {};
firstElement =1;
lastElement = 0;
elementCount = 0;
maxElementCount = 0;
}
Map3DApp? .Queue = Queue;
syntax
function Queue:new(o)
parameters
Queue:Peek
Returns the object at the beginning of the Queue
without removing it
syntax
function Queue:Peek()
CycleQueue:new
-----------------
local CycleQueue = {
--only set this value at init time
maxElementCount = 0;
--thers are all private data
list = {};
firstElement=1;
lastElement=0;
elementCount = 0;
}
CycleQueue? =
CycleQueue? ;
syntax
function CycleQueue:new(o)
parameters
Map data provider
| Title |
Map data provider |
| Author(s) |
SunLingFeng? |
| Date |
2008/1/25 |
| File |
script/kids/3DMapSystemUI/Map/Map3DAppDataPvd.lua |
Description
Member Functions
Map3DApp.DataPvd.SetServerURL
set remote server url
syntax
function Map3DApp.DataPvd.SetServerURL(url)
parameters
Map3DApp.DataPvd.GetTotalCellCount
total map cell count
DataPvd? .totalCellCount = 32768;
DataPvd? .logicCellSize = 1/32768;
syntax
function Map3DApp.DataPvd.GetTotalCellCount()
Map3DApp.DataPvd.GetTileByPos
tile
client call this method to get tile data
sender is this client object
callback data privde will call this function when data is prepared
syntax
function Map3DApp.DataPvd.GetTileByPos(posX,posY,objSender,callbackFun)
parameters
| posX |
|
| posY |
|
| objSender |
|
| callbackFun |
|
Map3DApp.DataPvd.BuytTile
buy tile with given id or position
- params tileID :tile id you want to buy,can be nil
- params x :,y:tile position you want to buy,can be nil
- params terrainType :, can be nil
- params __ :terrain texture,can be nil
- params __ :callback function when remote call return
syntax
function Map3DApp.DataPvd.BuytTile(userSession,tileID,_x,_y,_terrainType,_texture,sender,callback)
parameters
| userSession |
|
| tileID |
tile id you want to buy,can be nil |
| x |
|
| y |
|
| terrainType |
, can be nil |
| texture |
|
| sender |
|
| callback |
|
Map3DApp.DataPvd.MockGetTilesInRegion
mock RPC for testing
syntax
function Map3DApp.DataPvd.MockGetTilesInRegion(msg,args)
parameters
Map3DApp.DataPvd.GetRandomTilePosInRegion
get a random tile in reagion
- params x :center point x in normalized world coordinate
- params y :center point y in normalized world coordinate
- params radius :region width,in normalized world coordinate
syntax
function Map3DApp.DataPvd