Google 地图 - 获取区域/邻里的多边形边界

2023-12-25

我想在 Google Maps API v3 上进行简单搜索,并得到带有彩色多边形的地图,如下图所示:

搜索: 皮涅罗斯, 圣保罗


我通过使用得到它维基地图 http://WikiMapia.org data.

步骤是:

  • Open 维基地图 http://WikiMapia.org.
  • Press F12 or Ctrl+Shift+I.
  • 搜索您想要的位置。
  • Click with the right button on neighborhood and choose Edit Poly. enter image description here
  • On the developer tools click in Network and filter by getPolygon. enter image description here
  • Copy server response that looks like: enter image description here

  • 并前往Console选项卡执行该功能:Wikimapia.Parser.Itiles.prototype.decodePolygon("Copyed text here");

  • 按 Enter 键执行,之后控制台将返回带有点的对象(多边形的路径)。

I use JSON.stringify将对象转换为 JSON。

Example:

JSON.stringify(Wikimapia.Parser.Itiles.prototype.decodePolygon("-619402099;-109032887;02fe8953fffe5a000ae5fe379a000fedffd250000e40ffd6050007f7ffeff2001925ffd59b001f6fffdc310012dcffed10003b82ffd9b9005514ffc4520053d2ffc807000c92fff82dfffde7000e670005070012ef0009390021bf000572001358fffc3a001a57fffa210013c1ffff940036530008610022fc000284004732fff5f0001fb1fff2960013c1fff80800594efffde7002c72000f16004b5000204600416f0013b2002292"))

上面的代码将返回此 JSON(缩进Json 格式化程序 http://jsonformatter.curiousconcept.com):

{
   "points":[
      {
         "lat":-10.9032887,
         "lng":-61.9402099
      },
      {
         "lat":-10.9032466,
         "lng":-61.9306183
      },
      {
         "lat":-10.8915629,
         "lng":-61.9308972
      },
      {
         "lat":-10.8903934,
         "lng":-61.9313049
      },
      {
         "lat":-10.8893188,
         "lng":-61.9316697
      },
      {
         "lat":-10.8889079,
         "lng":-61.9318736
      },
      {
         "lat":-10.8878227,
         "lng":-61.9325173
      },
      {
         "lat":-10.8869061,
         "lng":-61.933322
      },
      {
         "lat":-10.8864214,
         "lng":-61.9338048
      },
      {
         "lat":-10.8854416,
         "lng":-61.9353282
      },
      {
         "lat":-10.8839139,
         "lng":-61.9375062
      },
      {
         "lat":-10.8824811,
         "lng":-61.939652
      },
      {
         "lat":-10.8822809,
         "lng":-61.9399738
      },
      {
         "lat":-10.8826496,
         "lng":-61.9399202
      },
      {
         "lat":-10.8831343,
         "lng":-61.9400489
      },
      {
         "lat":-10.8839982,
         "lng":-61.940285
      },
      {
         "lat":-10.8844934,
         "lng":-61.9404244
      },
      {
         "lat":-10.8851677,
         "lng":-61.9403279
      },
      {
         "lat":-10.8856734,
         "lng":-61.9401777
      },
      {
         "lat":-10.8870641,
         "lng":-61.940167
      },
      {
         "lat":-10.8879597,
         "lng":-61.9403815
      },
      {
         "lat":-10.8897823,
         "lng":-61.9404459
      },
      {
         "lat":-10.8905936,
         "lng":-61.9401884
      },
      {
         "lat":-10.8910993,
         "lng":-61.9398451
      },
      {
         "lat":-10.8933855,
         "lng":-61.9396412
      },
      {
         "lat":-10.8945233,
         "lng":-61.9395876
      },
      {
         "lat":-10.8964513,
         "lng":-61.9399738
      },
      {
         "lat":-10.8981264,
         "lng":-61.9408
      },
      {
         "lat":-10.8990114,
         "lng":-61.9413042
      }
   ],
   "bounds":{
      "left":-61.9413042,
      "bottom":-10.9032887,
      "right":-61.9306183,
      "top":-10.8822809,
      "centerLatLng":null
   }
}

最后我像这样使用正则表达式regexr.com/3c5m2 http://regexr.com/3c5m2将 JSON 转换为 WKT。我不复制整个 JSON,只复制其中的对象"points"正则表达式中的数组。在 RegExr 上,我复制替换的文本并粘贴POLYGON((pastehere)).

重要的!应用正则表达式后,您需要在最后一点中重复第一点。

-61.956523060798645 -10.877613428213532,-61.95640504360199 -10.877718788854143,-61.956791281700134 -10.878393096072424,-61.95735991001129 -10.87805594265392,-61.95 682346820831 -10.877339490373695,-61.956523060798645 -10.877613428213532

然后你会得到这样的东西:

POLYGON((-61.956523060798645 -10.877613428213532,-61.95640504360199 -10.877718788854143,-61.956791281700134 -10.878393096072424,-61.95735991001129 -10.87805594265392,-61.95682346820831 -10.877339490373695,-61.956523060798645 -10.877613428213532))

可以插入支持WKT的数据库(如MySQL)。

维基地图有一个API http://api.wikimapia.org那么所有这些过程都可以是自动的,但这对我来说效果很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 地图 - 获取区域/邻里的多边形边界 的相关文章

随机推荐

  • Dagger Hilt 具有类型的抽象类

    大家好 我正在尝试使用 Dagger Hilt 我想知道如何实现下面的代码 AndroidEntryPoint abstract class BaseActivity b IActivity b
  • 第一次上传到github的问题

    我第一次上传到 github 时遇到以下命令问题 dan dan netbook opt lampp htdocs myProject git push origin master error unable to create direct
  • 使用“.click()”触发事件监听器是同步的吗?

    我有以下代码 其中有一个
  • Rails + Capybara-webkit – javascript 代码覆盖率?

    我正在考虑使用 capybara webkit 对应用程序进行一些接近现实的测试 这是绝对必要的 因为该应用程序具有非常丰富的基于 JS 的 UI 而 Rails 部分主要是 API 调用 问题是 是否有任何工具可以集成到测试管道中 可以检
  • 从 javascript 代码中调用 Golang 函数

    我正在开发一个 web 应用程序 它已经有布局 css bootstrap v 3 和 index html 我已经成功加载了 Golang 并运行的项目 我嵌入了一个注册按钮 单击该按钮后应该从处理 http 请求的 server go
  • javascript 正则表达式求值导致浏览器挂起

    我在使用正则表达式进行自定义验证时遇到问题 我有一个不引人注目的方法 jQuery validator addMethod isRegex function value element params if value length lt 1
  • ASP.NET core 在 IIS 中运行启动错误日志记录

    如何捕获 IIS 中托管的 ASP NET Core 应用程序中的启动错误 我正在尝试捕获抛出的异常ConfigureServices这只发生在 IIS 托管环境中 我发现这是作为加载的证书文件ConfigureServices丢失 并且在
  • 为什么 MongoDB 在多线程客户端上比在单线程客户端上表现更好?

    我们最近使用 YCSB 对 Oracle 10g 和 MongoDB 进行了基准测试 https github com brianfrankcooper YCSB wiki https github com brianfrankcooper
  • Erlang mysql 示例

    只是想知道是否有人可以给出使用 erlang mysql 模块的工作示例 http code google com p erlang mysql driver http code google com p erlang mysql driv
  • 我可以使用 Lumen 在中间件中获取当前路线信息吗?

    我需要在中间件中拥有当前找到的控制器和操作 以便我可以进行一些身份验证 但我发现这是不可能的 因为管道就像 Middleware1 gt Middleware2 gt 进行调度 gt controller action gt Middlew
  • 了解为什么 drop.duplicates() 不起作用 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 假设我有一个 2 行 pandas 数据框 是通过对更大的数据框进行子集化而获得的 TransID rev offer qs lt
  • 使用 Discord.js 向频道发送消息时遇到问题 [重复]

    这个问题在这里已经有答案了 我正在尝试创建一个机器人 一旦用户发送特定消息 该机器人就会向频道发送消息 我已经设法让它在机器人登录后发送一条消息 但是client on 函数不会做任何事情 如果我做错了什么 请告诉我 提前谢谢 const
  • OpenCV中如何对复数矩阵求逆?

    我在做复杂矩阵的逆时遇到麻烦 据我所知 复杂矩阵只是一个双通道矩阵 CV 32FC2 CV 64FC2 假设我有一个矩阵 C Mat C 2 2 CV 64FC2 C at
  • 何时在 Ruby 中使用 `require`、`load` 或 `autoload`?

    我理解之间的细微差别require load and autoload在 Ruby 中 但我的问题是 你怎么知道使用哪一个 除了能够 包裹 load在匿名模块中 require似乎是首选 但是之后autoload允许您延迟加载文件 这听起来
  • 保持 Android 表格中所有行的列对齐

    我在 Android 上遇到了一个问题 无论我尝试什么都无法解决 想象一个表格布局 有 3 个表格行 每行有两个文本字段 Image 由于新用户限制 无法在此处添加图像 http imgim com tbl behaviour png 现在
  • 基于 Zend Framework 的项目

    在哪里可以看到具有漂亮架构的 ZF bssed 项目 数据映射器 服务等 这是一些应用程序 http www framework zend com wiki pages viewpage action pageId 14134 http w
  • 如何在GAE上设置中级证书?

    我为我的自定义域购买了 SSL 认证 并设置了我的 GAE 项目 在新的 Firefox 版本发布之前 它在大多数浏览器上都运行良好 Firefox 拒绝了我的 SSL 认证 我使用过 SSL Checker 它给了我反馈 并非所有网络浏览
  • 用于计费协议的 Paypal Webhook 收到付款了吗?

    是否有在收到计费协议付款时触发的 Webhook 我创建了一个计费计划 并让用户接受每月定期付款的计费协议 当计费协议执行时 webhookBILLING SUBSCRIPTION CREATED fires 是否有一个 webhook 在
  • 对多个文件运行 Excel 宏

    我有一个 Excel 宏保存在一个空白工作簿和多个数据工作簿中 目前 我分别打开宏文件和每个数据文件 并使用键盘快捷键在每个文件上运行宏 有没有一种方法可以在所有数据工作簿上运行宏而无需打开它们 或者使用 一个批处理文件 VBA VBScr
  • Google 地图 - 获取区域/邻里的多边形边界

    我想在 Google Maps API v3 上进行简单搜索 并得到带有彩色多边形的地图 如下图所示 搜索 皮涅罗斯 圣保罗 我通过使用得到它维基地图 http WikiMapia org data 步骤是 Open 维基地图 http W