在我们日益互联的世界中 准确的地理空间数据已成为现代应用的基石 支撑着从基于位置的服务到物流优化的所有内容 地点搜索和地理编码API是一个多功能且强大的工具 可以简化精确位置信息的获取 无缝处理文本查询和经纬度坐标
地理空间数据 包括关于特定地理位置的信息 已成为当代应用的重要资产 其影响扩展到多个领域:
地理定位服务: 无论是促进拼车 食物配送还是导航 确定用户位置的能力至关重要
导航和路线规划: 最优的车辆和行人路线 行驶距离计算和预计到达时间都依赖于准确的位置数据
实时天气更新: 位置特定的天气预报和警报确保用户为当前天气条件做好准备
地点搜索和地理编码API正证明是一个宝贵的工具 简化了对准确地理空间数据的访问 该API具有广泛的功能 旨在满足开发者和企业的多样化需求:
通过查询获取位置: 用户可以提供文本查询 如地址 城市名称或兴趣点 获得位置信息 API的强大搜索功能确保检索到最相关的位置数据
经纬度搜索: API还支持基于经纬度坐标的请求 这对依赖GPS数据或用户提供的地理坐标的应用程序而言是一个福音
完整的位置信息: 除了基本信息外 API还提供完整的数据集 包括位置名称 地址 纬度 经度 邮政编码和其他数据 这个丰富的数据集提高了基于位置的服务的准确性和深度
将地点搜索和地理编码API集成到您的应用程序是一个简单的过程 它支持多种编程语言和框架 通常包括广泛的文档和代码示例 以便于无缝集成到您的项目中
在一个迅速发展的世界中 基于位置的信息变得愈加重要 地点搜索和地理编码API成为不可或缺的资产 它易于使用的界面 全面的位置信息和对准确性的坚定承诺 使您能够丰富基于位置的服务 提升用户体验 优化用户操作 无论您是在开发导航应用 电子商务平台还是天气预报工具 这个API都能让您轻松访问准确的位置数据 从而构建更高效 以用户为中心的应用程序 在位置至关重要的环境中 这个API将准确的地理空间数据放在您的指尖 使您能够为用户提供世界级的服务和体验
它将接收参数并为您提供JSON
地理定位服务: 确定用户的位置用于拼车 分享应用和基于位置的推荐
天气预报: 为用户提供位置特定的天气预报和警报
本地搜索: 根据用户的查询帮助用户找到附近的商家 餐厅和服务
物流追踪: 跟踪货物和资产的移动以实现高效的供应链管理
房地产信息: 提供详细的房地产数据 包括物业详情和邻里信息
要使用此端点,只需运行它,您将获得所有可用类别。
["accommodation","accommodation.hotel","accommodation.hut","accommodation.apartment","accommodation.chalet","accommodation.guest_house","accommodation.hostel","accommodation.motel","activity","activity.community_center","activity.sport_club","commercial","commercial.supermarket","commercial.marketplace","commercial.shopping_mall","commercial.department_store","commercial.elektronics","commercial.outdoor_and_sport","commercial.outdoor_and_sport.water_sports","commercial.outdoor_and_sport.ski","commercial.outdoor_and_sport.diving","commercial.outdoor_and_sport.hunting","commercial.outdoor_and_sport.bicycle","commercial.outdoor_and_sport.fishing","commercial.outdoor_and_sport.golf","commercial.vehicle","commercial.hobby","commercial.hobby.model","commercial.hobby.anime","commercial.hobby.collecting","commercial.hobby.games","commercial.hobby.brewing","commercial.hobby.photo","commercial.hobby.music","commercial.hobby.sewing_and_knitting","commercial.hobby.art","commercial.books","commercial.gift_and_souvenir","commercial.stationery","commercial.newsagent","commercial.tickets_and_lottery","commercial.clothing","commercial.clothing.shoes","commercial.clothing.clothes","commercial.clothing.underwear","commercial.clothing.sport","commercial.clothing.men","commercial.clothing.women","commercial.clothing.kids","commercial.clothing.accessories","commercial.bag","commercial.baby_goods","commercial.agrarian","commercial.garden","commercial.houseware_and_hardware","commercial.houseware_and_hardware.doityourself","commercial.houseware_and_hardware.hardware_and_tools","commercial.houseware_and_hardware.building_materials","commercial.houseware_and_hardware.building_materials.paint","commercial.houseware_and_hardware.building_materials.glaziery","commercial.houseware_and_hardware.building_materials.doors","commercial.houseware_and_hardware.building_materials.tiles","commercial.houseware_and_hardware.building_materials.windows","commercial.houseware_and_hardware.building_materials.flooring","commercial.houseware_and_hardware.fireplace","commercial.houseware_and_hardware.swimming_pool","commercial.florist","commercial.furniture_and_interior","commercial.furniture_and_interior.lighting","commercial.furniture_and_interior.curtain","commercial.furniture_and_interior.carpet","commercial.furniture_and_interior.kitchen","commercial.furniture_and_interior.bed","commercial.furniture_and_interior.bathroom","commercial.chemist","commercial.health_and_beauty","commercial.health_and_beauty.pharmacy","commercial.health_and_beauty.optician","commercial.health_and_beauty.medical_supply","commercial.health_and_beauty.hearing_aids","commercial.health_and_beauty.herbalist","commercial.health_and_beauty.cosmetics","commercial.health_and_beauty.wigs","commercial.toy_and_game","commercial.pet","commercial.food_and_drink","commercial.food_and_drink.bakery","commercial.food_and_drink.deli","commercial.food_and_drink.frozen_food","commercial.food_and_drink.pasta","commercial.food_and_drink.spices","commercial.food_and_drink.organic","commercial.food_and_drink.honey","commercial.food_and_drink.rice","commercial.food_and_drink.nuts","commercial.food_and_drink.health_food","commercial.food_and_drink.ice_cream","commercial.food_and_drink.seafood","commercial.food_and_drink.fruit_and_vegetable","commercial.food_and_drink.farm","commercial.food_and_drink.confectionery","commercial.food_and_drink.chocolate","commercial.food_and_drink.butcher","commercial.food_and_drink.cheese_and_dairy","commercial.food_and_drink.drinks","commercial.food_and_drink.coffee_and_tea","commercial.convenience","commercial.discount_store","commercial.smoking","commercial.second_hand","commercial.gas","commercial.weapons","commercial.pyrotechnics","commercial.energy","commercial.wedding","commercial.jewelry","commercial.watches","commercial.art","commercial.antiques","commercial.video_and_music","commercial.erotic","commercial.trade","commercial.kiosk","catering","catering.restaurant","catering.restaurant.pizza","catering.restaurant.burger","catering.restaurant.regional","catering.restaurant.italian","catering.restaurant.chinese","catering.restaurant.sandwich","catering.restaurant.chicken","catering.restaurant.mexican","catering.restaurant.japanese","catering.restaurant.american","catering.restaurant.kebab","catering.restaurant.indian","catering.restaurant.asian","catering.restaurant.sushi","catering.restaurant.french","catering.restaurant.german","catering.restaurant.thai","catering.restaurant.greek","catering.restaurant.seafood","catering.restaurant.fish_and_chips","catering.restaurant.steak_house","catering.restaurant.international","catering.restaurant.tex-mex","catering.restaurant.vietnamese","catering.restaurant.turkish","catering.restaurant.korean","catering.restaurant.noodle","catering.restaurant.barbecue","catering.restaurant.spanish","catering.restaurant.fish","catering.restaurant.ramen","catering.restaurant.mediterranean","catering.restaurant.friture","catering.restaurant.beef_bowl","catering.restaurant.lebanese","catering.restaurant.wings","catering.restaurant.georgian","catering.restaurant.tapas","catering.restaurant.indonesian","catering.restaurant.arab","catering.restaurant.portuguese","catering.restaurant.russian","catering.restaurant.filipino","catering.restaurant.african","catering.restaurant.malaysian","catering.restaurant.caribbean","catering.restaurant.peruvian","catering.restaurant.bavarian","catering.restaurant.brazilian","catering.restaurant.curry","catering.restaurant.dumpling","catering.restaurant.persian","catering.restaurant.argentinian","catering.restaurant.oriental","catering.restaurant.balkan","catering.restaurant.moroccan","catering.restaurant.pita","catering.restaurant.ethiopian","catering.restaurant.taiwanese","catering.restaurant.latin_american","catering.restaurant.hawaiian","catering.restaurant.irish","catering.restaurant.austrian","catering.restaurant.croatian","catering.restaurant.danish","catering.restaurant.tacos","catering.restaurant.bolivian","catering.restaurant.hungarian","catering.restaurant.western","catering.restaurant.european","catering.restaurant.jamaican","catering.restaurant.cuban","catering.restaurant.soup","catering.restaurant.uzbek","catering.restaurant.nepalese","catering.restaurant.czech","catering.restaurant.syrian","catering.restaurant.afghan","catering.restaurant.malay","catering.restaurant.chili","catering.restaurant.belgian","catering.restaurant.ukrainian","catering.restaurant.swedish","catering.restaurant.pakistani","catering.fast_food","catering.fast_food.pizza","catering.fast_food.burger","catering.fast_food.sandwich","catering.fast_food.kebab","catering.fast_food.fish_and_chips","catering.fast_food.noodle","catering.fast_food.ramen","catering.fast_food.wings","catering.fast_food.tapas","catering.fast_food.pita","catering.fast_food.tacos","catering.fast_food.soup","catering.fast_food.salad","catering.fast_food.hot_dog","catering.cafe","catering.cafe.waffle","catering.cafe.ice_cream","catering.cafe.coffee_shop","catering.cafe.donut","catering.cafe.crepe","catering.cafe.bubble_tea","catering.cafe.cake","catering.cafe.frozen_yogurt","catering.cafe.dessert","catering.cafe.coffee","catering.cafe.tea","catering.food_court","catering.bar","catering.pub","catering.ice_cream","catering.biergarten","education","education.school","education.driving_school","education.music_school","education.language_school","education.library","education.college","education.university","childcare","childcare.kindergarten","entertainment","entertainment.culture","entertainment.culture.theatre","entertainment.culture.arts_centre","entertainment.culture.gallery","entertainment.zoo","entertainment.aquarium","entertainment.planetarium","entertainment.museum","entertainment.cinema","entertainment.amusement_arcade","entertainment.escape_game","entertainment.miniature_golf","entertainment.bowling_alley","entertainment.flying_fox","entertainment.theme_park","entertainment.water_park","healthcare","healthcare.clinic_or_praxis","healthcare.clinic_or_praxis.allergology","healthcare.clinic_or_praxis.vascular_surgery","healthcare.clinic_or_praxis.urology","healthcare.clinic_or_praxis.trauma","healthcare.clinic_or_praxis.rheumatology","healthcare.clinic_or_praxis.radiology","healthcare.clinic_or_praxis.pulmonology","healthcare.clinic_or_praxis.psychiatry","healthcare.clinic_or_praxis.paediatrics","healthcare.clinic_or_praxis.otolaryngology","healthcare.clinic_or_praxis.orthopaedics","healthcare.clinic_or_praxis.ophthalmology","healthcare.clinic_or_praxis.occupational","healthcare.clinic_or_praxis.gynaecology","healthcare.clinic_or_praxis.general","healthcare.clinic_or_praxis.gastroenterology","healthcare.clinic_or_praxis.endocrinology","healthcare.clinic_or_praxis.dermatology","healthcare.clinic_or_praxis.cardiology","healthcare.dentist","healthcare.dentist.orthodontics","healthcare.hospital","healthcare.pharmacy","heritage","heritage.unesco","leisure","leisure.picnic","leisure.picnic.picnic_site","leisure.picnic.picnic_table","leisure.picnic.bbq","leisure.playground","leisure.spa","leisure.spa.public_bath","leisure.spa.sauna","leisure.park","leisure.park.garden","leisure.park.nature_reserve","man_made","man_made.pier","man_made.breakwater","man_made.tower","man_made.water_tower","man_made.bridge","man_made.lighthouse","man_made.windmill","man_made.watermill","natural","natural.forest","natural.water","natural.water.spring","natural.water.reef","natural.water.hot_spring","natural.water.geyser","natural.water.sea","natural.mountain","natural.mountain.peak","natural.mountain.glacier","natural.mountain.cliff","natural.mountain.rock","natural.mountain.cave_entrance","natural.sand","natural.sand.dune","natural.protected_area","national_park","office","office.government","office.government.administrative","office.government.register_office","office.government.tax","office.government.public_service","office.government.ministry","office.government.healthcare",{"_note":"Response truncated for documentation purposes"}]
curl --location --request GET 'https://zylalabs.com/api/2573/place+search+and+geocoding+api/19893/categories' --header 'Authorization: Bearer YOUR_API_KEY'
此端点提供有关附近地点的结构化信息,包括识别数据、地理位置和相关机构的分类
地方 - 端点功能
| 对象 | 描述 |
|---|---|
lat |
[必需] Indicates a latitude |
lon |
[必需] Indicates a longitude |
categories |
可选 Indicates a category (default catering.cafe) |
radius |
可选 Indicates a radius (Meters Default: 200 Maximum: 50000) |
{"status":"OK","results":[{"location":{"lat":"40.7498599","lng":"-73.9874941"},"name":"Capital One Café","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 34th Street","address":"53 West 34th Street, New York, NY 10001, United States of America","formatted_address":"Capital One Café, 53 West 34th Street, New York, NY 10001, United States of America","distanceMeter":"21.00","place_id":"518d1f741a337f52c0592b52c268fb5f4440f00103f90187da08a2020000009203114361706974616c204f6e6520436166c3a9"},{"location":{"lat":"40.7507114","lng":"-73.9868695"},"name":"Brasserie Toast Cafe","country":"United States","state":"New York","postal_code":"10018","city":"New York","street":"6th Avenue","address":"968 6th Avenue, New York, NY 10018, United States of America","formatted_address":"Brasserie Toast Cafe, 968 6th Avenue, New York, NY 10018, United States of America","distanceMeter":"126.00","place_id":"51dffab0de287f52c059c2a5a84f17604440f00103f901b3290c260200000092031442726173736572696520546f6173742043616665"},{"location":{"lat":"40.7500475","lng":"-73.9860309"},"name":"Angelina Bakery & Pizza","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 35th Street","address":"41 West 35th Street, New York, NY 10001, United States of America","formatted_address":"Angelina Bakery & Pizza, 41 West 35th Street, New York, NY 10001, United States of America","distanceMeter":"146.00","place_id":"511c1659211b7f52c059e040768e01604440f00103f901478e37e702000000920317416e67656c696e612042616b65727920262050697a7a61"},{"location":{"lat":"40.7483820","lng":"-73.9878429"},"name":"Early Edition Espresso Bar","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 32nd Street","address":"49 West 32nd Street, New York, NY 10001, United States of America","formatted_address":"Early Edition Espresso Bar, 49 West 32nd Street, New York, NY 10001, United States of America","distanceMeter":"155.00","place_id":"517e456dd1387f52c059be3c3cfbca5f4440f00103f9015a5e71850200000092031a4561726c792045646974696f6e20457370726573736f20426172"},{"location":{"lat":"40.7485816","lng":"-73.9863247"},"name":"Kawande Martin Cafe","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 33rd Street","address":"West 33rd Street, New York, NY 10001, United States of America","formatted_address":"Kawande Martin Cafe, West 33rd Street, New York, NY 10001, United States of America","distanceMeter":"178.00","place_id":"512a6fa2f11f7f52c05935f99985d15f4440f00103f901261d6435010000009203134b6177616e6465204d617274696e2043616665"},{"location":{"lat":"40.7482654","lng":"-73.9884306"},"name":"Biao Sugar","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"Broadway","address":"1271 Broadway, New York, NY 10001, United States of America","formatted_address":"Biao Sugar, 1271 Broadway, New York, NY 10001, United States of America","distanceMeter":"179.00","place_id":"5167576b72427f52c059d5a41f29c75f4440f00103f9016adf31b70100000092030a4269616f205375676172"},{"location":{"lat":"40.7504317","lng":"-73.9897503"},"name":"Moka & Co","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 34th Street","address":"142 West 34th Street, New York, NY 10001, United States of America","formatted_address":"Moka & Co, 142 West 34th Street, New York, NY 10001, United States of America","distanceMeter":"186.00","place_id":"51326da411587f52c05999785d250e604440f00103f901d2dbb3cd000000009203094d6f6b61202620436f"},{"location":{"lat":"40.7480440","lng":"-73.9873353"},"name":"caffé bene","country":"United States","state":"New York","postal_code":"10001","city":"New York","street":"West 32nd Street","address":"39 West 32nd Street, New York, NY 10001, United States of America","formatted_address":"caffé bene, 39 West 32nd Street, New York, NY 10001, United States of America","distanceMeter":"195.00","place_id":"51edeb6580307f52c059a0c3e2e7bf5f4440f00103f9015d0a3a730100000092030b63616666c3a92062656e65"}]}
curl --location --request GET 'https://zylalabs.com/api/2573/place+search+and+geocoding+api/19894/places?lat=40.749779&lon=-73.987719&categories=catering.cafe&radius=500' --header 'Authorization: Bearer YOUR_API_KEY'
| 标头 | 描述 |
|---|---|
授权
|
[必需] 应为 Bearer access_key. 订阅后,请查看上方的"您的 API 访问密钥"。 |
无长期承诺。随时升级、降级或取消。 免费试用包括最多 50 个请求。
要使用此API,用户必须输入一个关键字以及经纬度
有不同的计划适合每个人,包括一个小量请求的免费试用,但它的速率限制以防止滥用服务
Zyla为几乎所有编程语言提供了广泛的集成方法。您可以根据需要使用这些代码与您的项目进行集成
地点搜索和地理编码 API 是一个工具,用户可以通过输入关键字、纬度和经度获取位置信息
获取地点端点返回详细位置信息,包括名称 地址 纬度 经度 邮政编码 国家 城市 州 电话号码 网站 评分 总评论数 和指定关键字的服务选项
响应中的关键字段包括“名称”“位置”“地址”“纬度”“经度”“评级”“总评论”和“服务选项”这些字段提供了关于查询地点的全面细节
响应数据采用JSON格式结构,其中“status”字段指示请求的成功与否,“data”数组包含每个匹配位置的对象,详细列出了各种属性
获取地点接口提供有关企业、兴趣点和地理位置的信息,包括它们的名称、地址、联系方式和用户评分
用户可以使用诸如“关键字”(用于地名或类型)和可选的“纬度”和“经度”等参数来定制他们的请求,以根据地理坐标优化搜索结果
用户可以利用返回的数据来增强应用程序,通过显示位置信息、提供导航选项或将用户评价和评分集成到他们的服务中
该数据来源于用户生成内容、商业列表和地理数据库的结合,确保了位置的广泛和准确表示
数据准确性通过定期更新 用户反馈和质量检查得以维护 这些检查验证信息与可信的地理和商业数据库的对应情况
Zyla API Hub 就像一个大型 API 商店,您可以在一个地方找到数千个 API。我们还为所有 API 提供专门支持和实时监控。注册后,您可以选择要使用的 API。请记住,每个 API 都需要自己的订阅。但如果您订阅多个 API,您将为所有这些 API 使用相同的密钥,使事情变得更简单。
价格以 USD(美元)、EUR(欧元)、CAD(加元)、AUD(澳元)和 GBP(英镑)列出。我们接受所有主要的借记卡和信用卡。我们的支付系统使用最新的安全技术,由 Stripe 提供支持,Stripe 是世界上最可靠的支付公司之一。如果您在使用卡片付款时遇到任何问题,请通过 [email protected]
此外,如果您已经以这些货币中的任何一种(USD、EUR、CAD、AUD、GBP)拥有有效订阅,该货币将保留用于后续订阅。只要您没有任何有效订阅,您可以随时更改货币。
定价页面上显示的本地货币基于您 IP 地址的国家/地区,仅供参考。实际价格以 USD(美元)为单位。当您付款时,即使您在我们的网站上看到以本地货币显示的等值金额,您的卡片对账单上也会以美元显示费用。这意味着您不能直接使用本地货币付款。
有时,银行可能会因其欺诈保护设置而拒绝收费。我们建议您首先联系您的银行,检查他们是否阻止了我们的收费。此外,您可以访问账单门户并更改关联的卡片以进行付款。如果这些方法不起作用并且您需要进一步帮助,请通过 [email protected]
价格由月度或年度订阅决定,具体取决于所选计划。
API 调用根据成功请求从您的计划中扣除。每个计划都包含您每月可以进行的特定数量的调用。只有成功的调用(由状态 200 响应指示)才会计入您的总数。这确保失败或不完整的请求不会影响您的月度配额。
Zyla API Hub 采用月度订阅系统。您的计费周期将从您购买付费计划的那一天开始,并在下个月的同一日期续订。因此,如果您想避免未来的费用,请提前取消订阅。
要升级您当前的订阅计划,只需转到 API 的定价页面并选择您要升级到的计划。升级将立即生效,让您立即享受新计划的功能。请注意,您之前计划中的任何剩余调用都不会转移到新计划,因此在升级时请注意这一点。您将被收取新计划的全部金额。
要检查您本月剩余多少 API 调用,请参考响应标头中的 "X-Zyla-API-Calls-Monthly-Remaining" 字段。例如,如果您的计划允许每月 1,000 个请求,而您已使用 100 个,则响应标头中的此字段将显示 900 个剩余调用。
要查看您的计划允许的最大 API 请求数,请检查 "X-Zyla-RateLimit-Limit" 响应标头。例如,如果您的计划包括每月 1,000 个请求,此标头将显示 1,000。
"X-Zyla-RateLimit-Reset" 标头显示您的速率限制重置之前的秒数。这告诉您何时您的请求计数将重新开始。例如,如果它显示 3,600,则意味着还有 3,600 秒直到限制重置。
是的,您可以随时通过访问您的账户并在账单页面上选择取消选项来取消您的计划。请注意,升级、降级和取消会立即生效。此外,取消后,您将不再有权访问该服务,即使您的配额中还有剩余调用。
您可以通过我们的聊天渠道联系我们以获得即时帮助。我们始终在线,时间为上午 8 点至下午 5 点(EST)。如果您在该时间之后联系我们,我们将尽快回复您。此外,您可以通过 [email protected]
为了让您有机会在没有任何承诺的情况下体验我们的 API,我们提供 7 天免费试用,允许您免费进行最多 50 次 API 调用。此试用只能使用一次,因此我们建议将其应用于您最感兴趣的 API。虽然我们的大多数 API 都提供免费试用,但有些可能不提供。试用在 7 天后或您进行了 50 次请求后结束,以先发生者为准。如果您在试用期间达到 50 次请求限制,您需要"开始您的付费计划"以继续发出请求。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。或者,如果您在第 7 天之前不取消订阅,您的免费试用将结束,您的计划将自动计费,授予您访问计划中指定的所有 API 调用的权限。请记住这一点以避免不必要的费用。
7 天后,您将被收取试用期间订阅的计划的全额费用。因此,在试用期结束前取消很重要。因忘记及时取消而提出的退款请求不被接受。
当您订阅 API 免费试用时,您可以进行最多 50 次 API 调用。如果您希望超出此限制进行额外的 API 调用,API 将提示您执行"开始您的付费计划"。您可以在个人资料中的订阅 -> 选择您订阅的 API -> 定价标签下找到"开始您的付费计划"按钮。
付款订单在每月 20 日至 30 日之间处理。如果您在 20 日之前提交请求,您的付款将在此时间范围内处理。
服务级别:
100%
响应时间:
5,227ms
服务级别:
100%
响应时间:
623ms
服务级别:
100%
响应时间:
1,779ms
服务级别:
100%
响应时间:
88ms
服务级别:
100%
响应时间:
570ms
服务级别:
100%
响应时间:
3,656ms
服务级别:
100%
响应时间:
756ms
服务级别:
100%
响应时间:
965ms
服务级别:
100%
响应时间:
670ms
服务级别:
100%
响应时间:
125ms
服务级别:
100%
响应时间:
0ms
服务级别:
100%
响应时间:
0ms
服务级别:
100%
响应时间:
280ms
服务级别:
100%
响应时间:
1,122ms
服务级别:
100%
响应时间:
919ms
服务级别:
100%
响应时间:
955ms
服务级别:
100%
响应时间:
0ms
服务级别:
100%
响应时间:
465ms
服务级别:
100%
响应时间:
5,626ms
服务级别:
100%
响应时间:
0ms