Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Google maps 谷歌地图API V3:搜索标记_Google Maps_Search - Fatal编程技术网

Google maps 谷歌地图API V3:搜索标记

Google maps 谷歌地图API V3:搜索标记,google-maps,search,Google Maps,Search,我正在为一个客户构建一个谷歌地图,他们希望能够搜索我已经添加到地图中的标记 我已经构建了V3API映射,该映射从MySQL表中获取标记并将它们推送到标记数组中,但是我正在努力设置一个搜索框,该搜索框将列出与搜索查询匹配的所有内容 有没有人有过这方面的经验或能够帮助我?我想你需要访问以下链接 最好的方法是维护从数据库中提取的PIN数据集,并在自己的代码中处理对它们的搜索。要实现此功能,您需要保存对正在为该数据集中的每个位置创建的pin的引用。因此,从数据库中获取位置,在本地保存,将它们添加到地图,

我正在为一个客户构建一个谷歌地图,他们希望能够搜索我已经添加到地图中的标记

我已经构建了V3API映射,该映射从MySQL表中获取标记并将它们推送到标记数组中,但是我正在努力设置一个搜索框,该搜索框将列出与搜索查询匹配的所有内容


有没有人有过这方面的经验或能够帮助我?

我想你需要访问以下链接


最好的方法是维护从数据库中提取的PIN数据集,并在自己的代码中处理对它们的搜索。要实现此功能,您需要保存对正在为该数据集中的每个位置创建的pin的引用。因此,从数据库中获取位置,在本地保存,将它们添加到地图,使用创建的pin的引用更新本地数据存储,然后将搜索挂接到数据集,最后在为该结果保存的map pin引用上居中或任何您希望发生的事情

这篇谷歌演练很好地概述了这类解决方案。

对于node.js后端服务器,如果您已经将数据注册到数据库中,那么这里是查找元素的解决方案

  • 首先,我们使用 后缀/查询。此处理程序需要一个JSON或mysql数据库请求体的数组,它 指定三个参数:纬度、经度和距离。这些 然后将参数转换并作为变量存储在 处理程序

  • 然后,我们使用查询生成器创建了一个通用的Mongoose查询 格式。此格式从建立通用查询对象开始 等于数据库中所有用户的未过滤搜索

  • 如果提供了距离,查询生成器将添加新的搜索 过滤距离内所有用户的条件 提供了查询的坐标(纬度、经度)*

  • *这里 我们还可以使用MongoDB搜索参数$near及其关联的 属性maxDistance和Spheremic,以指定我们要搜索的范围 寻找掩护。我们将乘以查询体的距离 到1609.34,因为我们想获取用户的输入(以英里为单位)和 将其转换为MongoDB期望的单位(以米为单位)。(适用于MongoDB用户)

  • 最后,我们指定应该确定距离 假设为球面。这很重要,因为我们会 评估全球范围内的距离,而不是平面距离 欧几里得曲面

  • 最后,我们使用query.exec指示Mongoose运行最终的 查询如果查询没有遇到错误,它将提供一个JSON 满足条件的所有用户的输出

    //为满足特定查询条件集的所有用户检索JSON或数组记录 app.post('/query/',函数(req,res){

    }))


  • 您也可以使用MEAN stack阅读或参考此Google地图项目。

    我还想找到解决方案-您有什么想法吗?幸运吗?面对同样的问题。仍然没有答案吗?我也对答案感兴趣。没有代码否决票。这个问题与开发者添加到地图上的PIN有关。不从谷歌搜索地点或POI。
    // Grab all of the query parameters from the body.
    var lat             = req.body.latitude;
    var long            = req.body.longitude;
    var distance        = req.body.distance;
    
    // Opens a generic Mongoose Query. Depending on the post body we will...
    var query = User.find({});
    
    // ...include filter by Max Distance (converting miles to meters)
    if(distance){
    
        // (optional)Using MongoDB's geospatial querying features. (Note how coordinates are set [long, lat]
        query = query.where('location').near({ center: {type: 'Point', coordinates: [long, lat]}, OR Your own query to be specified here.
    
            // Converting meters to miles(For mongoDB users). Specifying spherical geometry (for globe)
            maxDistance: distance * 1609.34, spherical: true});
    }
    
    // ... Other queries will go here ... 
    
    // Execute Query and Return the Query Results
    query.exec(function(err, users){
        if(err)
            res.send(err);
    
        // If no errors, respond with a JSON of all users that meet the criteria or you can also enter the array number you want to pass.
        res.json(users);
    });