Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 防止玩家GPS周围的繁殖对象重叠,并存储在数据库中_Php_Mysql_Database_Database Design_Relational Database - Fatal编程技术网

Php 防止玩家GPS周围的繁殖对象重叠,并存储在数据库中

Php 防止玩家GPS周围的繁殖对象重叠,并存储在数据库中,php,mysql,database,database-design,relational-database,Php,Mysql,Database,Database Design,Relational Database,我目前正在创建一个数据库来存储在一个游戏中生成的树,比如《氏族之战》/《口袋妖怪围棋》。我创建了以下表格: Trees (tree_id PK, type_id FK, loc_lat, loc_lng); Tree_Types (tree_type_id PK, name); Users (user_id PK, loc_lat, loc_lng, visability_radius) 我使用PHP作为API来为我正在创建的游戏提供服务。我需要在用户表中存储的设定半径内,在玩家GPS位置(纬

我目前正在创建一个数据库来存储在一个游戏中生成的树,比如《氏族之战》/《口袋妖怪围棋》。我创建了以下表格:

Trees (tree_id PK, type_id FK, loc_lat, loc_lng);
Tree_Types (tree_type_id PK, name);
Users (user_id PK, loc_lat, loc_lng, visability_radius)
我使用PHP作为API来为我正在创建的游戏提供服务。我需要在用户表中存储的设定半径内,在玩家GPS位置(纬度/经度)周围随机放置一些树。我创建了以下查询以将树添加到数据库中:

INSERT INTO Trees (loc_lat, loc_lng, type_id) SELECT ? AS loc_lat, ? as loc_lng, type_id FROM Tree_Types ORDER BY RAND() LIMIT 1;
然而,考虑到这一点,因为我将需要在游戏中添加更多的树类型,我将需要在该地区的树木重生,以添加新添加的树类型。但我更愿意使用一种方法来记录生成树的位置,以及是否添加了树类型来生成它们

我想添加的一种方法是存储lat、lngs和一个半径,形成一个圆形区域,在那里树木已经繁殖。以下是表格结构的示例:

Circle (circle_id PK, loc_lat, loc_lng, radius)
Circle_Spawned_Trees (id PK, circle_id FK, tree_type_id FK)
这将允许在现有圆中生成新添加的树,也可以在非圆位置生成所有树。为此,我需要一种方法来检查一个位置是否在一个圆内,然后检查哪些树需要在预先生成的圆内生成,并添加到trees表中。然后生成玩家当前位置半径范围内的所有其他树,不包括圆表中的所有其他圆半径


所以我要寻找的是一种在玩家当前位置周围随机添加这些树并存储到数据库中的方法,它不会与任何其他预生成区域重叠。我需要一种存储圆的方法,当生成一个区域时,在玩家GPS和半径范围内生成随机树,而不是在数据库中存储的任何其他圆中。

我想你最好有一个通用的
对象
表,其中可能包括树、建筑、单位、玩家、,是的,但我想我应该用一张简单的桌子作为example@ceejayoz关于如何构造查询以添加新对象/树,您有什么想法吗