Any suggestions on how to display multi-polygons within MapKit for SwiftUI(https://developer.apple.com/documentation/mapkit/mappolygon)?
At the moment it is not supported and only supported by MapKit for UIKit(https://developer.apple.com/documentation/mapkit/mkmultipolygon) . Any idea on how to bridge these over?
Maps & Location
RSS for tagLearn how to integrate MapKit and Core Location to unlock the power of location-based features in your app.
Post
Replies
Boosts
Views
Activity
Hi, I've discovered that my app's location can be manipulated using iMyFone. I've searched extensively online for solutions, but haven't found anything effective. Do you have any insights on how I can prevent this manipulation using Swift code? Thanks for your help in advance.
I have not tested on the lower version but it seems like it is not functioning properly on iOS 17.4.
It does work with CircularGeographicCondition but not with BeaconIdentityCondition.
I am testing with this example code by Apple. I have typed proper UUID of my iBeacon device but it is never discovered.
Some other posts say that it has not been working since iOS 17.3.1.
Anyone having the same issue with me?
Hello there,
Mainland china user(s) have trouble accessing MapKitJS, keeps returning HTTP 401 unauthorized for https://cdn.apple-mapkit.com/ma/bootstrap?apiVersion=2&mkjsVersion=5.77.35.
The same valid JWT perfectly works for users rest of the world.
May i know is there any special handling needed for accessing mapkitJS on web from mainland china compared to rest of the world.
Advises are highly appreciated.
We're recently requested a Mapkit JS / Mapkit Server api limit increase request and are waiting to hear back before we push an important update to our app which switches to mapkit via server apis.
We don't often go over the 25k daily limit, but there can be spikes where the app goes very viral and we'll need well over 25k – likely above 50k based on historic usage.
I was wondering if there's any way to expedite our limit request? Or how do we get notified if our limit has been approved, is there any way to check?
Would using one of our Code-level support requests (TSIs) be a good idea here?
Thanks!
Is there a possibility to enable the public transport layer like in the Maps app?
I have more than 2000 location pins in SwiftData.
My model like this:
@Model
class HaritaModel {
let id: Int
let sto_title: String
let sto_latitude: Double
let sto_longitude: Double
let sto_address: String
let sto_city: String
let sto_country: String
init(id: Int, sto_title: String, sto_latitude: Double, sto_longitude: Double, sto_address: String, sto_city: String, sto_country: String) {
self.id = id
self.sto_title = sto_title
self.sto_latitude = sto_latitude
self.sto_longitude = sto_longitude
self.sto_address = sto_address
self.sto_city = sto_city
self.sto_country = sto_country
}
}
I want to take the user's location and show them the pins at a certain distance. I want these pins to be dynamically updated when the user pan or zoom the map.
The code I am trying to write is as follows:
//
// HaritaTest.swift
//
import SwiftUI
import MapKit
import SwiftData
struct HaritaTest: View {
@Environment(\.modelContext) private var contextHarita
@Query private var harita: [HaritaModel]
@State private var userPosition: MapCameraPosition = .userLocation(fallback: .automatic)
@State private var userCoordinate: CLLocationCoordinate2D?
var body: some View {
Text("Total Boutique \(harita.count)")
Map(initialPosition: { userPosition }) { haritaView in
ForEach(harita) { point in
if let userCoordinate = userCoordinate,
let stoLatitude = point.sto_latitude,
let stoLongitude = point.sto_longitude,
let latitude = Double(stoLatitude),
let longitude = Double(stoLongitude) {
let coordinate = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
if haritaView.contains(coordinate: coordinate) {
MapPin(coordinate: coordinate)
}
}
}
}
.onAppear {
CLLocationManager().requestWhenInUseAuthorization()
getUserLocation()
}
}
private func getUserLocation() {
if let userLocation = CLLocationManager().location {
userCoordinate = userLocation.coordinate
}
}
}
struct HaritaTest_Previews: PreviewProvider {
static var previews: some View {
HaritaTest()
}
}
can you support me?
thanks in advance
Using SwiftUI, MapKit and the Map() view in iOS 17, I'm adding markers and annotations to the map instance. However it seems regardless of what order they are added, they are rendered with random Z-index values. I've not found any modifiers to specify any kind of priority.
Is there a way to declare Z-index priority of Marker and Annotation views?
I have a problem getting cg point from coordinate with MKsnapshotter.
It works well with .flyover or .satellite map type but when using .satelliteFlyover cg point gets invalid value.
Can you guys help me to get correct value?
I attach screenshot here.
hi,
I want to develop an APP in Android that will send an iBeacon, but I found all third-party lib only support scan iBeacon. Does anyone know the solution?
thanks!
I'm currently working on an app that requires location-based notifications, particularly utilizing geofencing to trigger alerts when a user enters specific areas, such as when a student walks into a college campus. However, I'm curious about the behavior of such notifications when the app is fully terminated and not running in the background.
Does anyone have experience implementing geofencing and location-based notifications in apps that are fully terminated? Are these functionalities still active, or does the app need to be running in the background for them to work properly?
Any insights, experiences, or best practices regarding this matter would be greatly appreciated.
Thank you in advance for your help!
"When an iBeacon is received, a BLE scan API is called within didEnterRegion. However, if executed while the screen is off, Core Bluetooth's didDiscover does not function. Yet, if the screen is turned on once and then turned off again, didDiscover functions. Is there a way to make Core Bluetooth's didDiscover work while the screen is off?"
Let me know if you need further assistance or clarification!
func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
if let beaconRegion = region as? CLBeaconRegion {
startRanging(in: beaconRegion)
}
}
func startRanging(in beaconRegion: CLBeaconRegion) {
// バックグラウンドタスクを開始
bgTask = UIApplication.shared.beginBackgroundTask(expirationHandler: { [self] in
print("バックグラウンドタスクの有効期限が切れ")
// バックグラウンドタスクの有効期限が切れたときに、バックグラウンドタスクを終了
self.lm!.stopRangingBeacons(satisfying: beaconRegion.beaconIdentityConstraint)
UIApplication.shared.endBackgroundTask(bgTask)
// バックグラウンドタスクの識別子を無効
bgTask = .invalid
})
// レンジング開始
self.lm!.startRangingBeacons(satisfying: beaconRegion.beaconIdentityConstraint)
//サービス指定してCoreBluetoothを起動
self.centralManager.stopScan()
self.centralManager.scanForPeripherals(withServices: [self.kServiceUUID], options: nil)
// バックグラウンドタスク終了
let time = UIApplication.shared.backgroundTimeRemaining - 1.0
DispatchQueue.main.asyncAfter(deadline: .now() + time) {
self.stopRanging(in: beaconRegion)
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print("---- didDiscover ----")
print("peripheral-->\(peripheral)")
print("advertisementData-->\(advertisementData)")
print("rssi-->\(RSSI)")
print("---------------------")
}
My MacBook Air M2 system version macOS Sonoma 14.5 Beta (23F5049f)
The error occurred: from the end of March 2024 to today (April 8, 24)
Problem: The system positioning information is seriously wrong, including but not limited to: time zone, Safari, map app, weather app, search app... (PS. The positioning is correct when using Google Chrome and Google Maps, but it is still wrong when using Google Maps on Safari)
Background:
I came to Germany from mainland China at the end of March.
The Apple ID region I use is Germany.
The location of my iPhone and Apple Watch can be refreshed to Germany normally, and several of my AirTags have been refreshed to Germany.
Tried but failed:
I searched for some bash commands to try to clear and clear the cache of the map app and system location information.
rm -rf ~/Library/Containers/com.apple.Maps
rm -rf ~/Library/Application\ Support/com.apple.findmy
sudo rm -rf /Library/Caches/com.apple.GeoServices
sudo rm -rf /Library/Caches/com.apple.locationd
defaults delete com.apple.locationd.plist
Turn off location services in System Settings > Privacy and Security, shut down and restart the phone, and then turn the service back on.
Turn my VPN on and off.
Clear my network information.
Since there are many files saved, the restore operation is not planned.
我的MacBook Air M2 系统版本macOS Sonoma 14.5 Beta版(23F5049f)
错误发生时间:2024年3月底到今天(24年4月8日)
问题:系统定位信息严重错误,包括但不限于:时区、Safari、地图app、天气app、查找app... (PS.使用Google Chrome浏览器与Google Maps时定位正确,Safari使用Google Maps仍然错误)
背景:
我从3月底从中国大陆来到欧洲德国。
我使用的Apple ID地区是德国的。
我的iPhone和Apple Watch定位能正常刷新到德国,且我几个AirTag已经刷新到德国。
尝试但都未成功:
我搜索了一些bash命令尝试清除、清空地图app和系统位置信息的缓存。
rm -rf ~/Library/Containers/com.apple.Maps
rm -rf ~/Library/Application\ Support/com.apple.findmy
sudo rm -rf /Library/Caches/com.apple.GeoServices
sudo rm -rf /Library/Caches/com.apple.locationd
defaults delete com.apple.locationd.plist
关闭系统设置>隐私与安全中的定位服务,关机重启,再重开这项服务。
开关我的VPN。
清除我的网路信息。
由于保存的文件较多,不打算进行还原操作。
On iPhone 14 Pro running iOS 17.4.1, tapping on MKMapView triggers a dozen or more additional hitTest calls. At the moment, only one device has encountered this issue.Not sure if it's a hardware issue or a bug with MKMapView.
Adding MKMapView to the app could potentially cause multiple hitTest calls on views across other pages.
I’m working on updating one of my apps to the asynchronous location updates API, but have been running into an unhelpful error.
Here's my code:
@Observable
class CurrentLocation: NSObject, CLLocationManagerDelegate {
private(set) var location: CLLocation?
private let locationManager = CLLocationManager()
override init() {
super.init()
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyReduced
}
func requestLocation() async throws {
print("requesting location")
requestAccess()
for try await update in CLLocationUpdate.liveUpdates() {
self.location = update.location
if update.isStationary {
break
}
}
}
}
But after calling requestLocation(), I receive the following error in the console without any location updates:
{"msg":"#locationUpdater received unhandled message", "Message":kCLConnectionMessageCompensatedLocation, "self":"0x600002eaa600"}
Googling this error yields absolutely no matches. I’ve ensured that I have the necessary Info.plist entries (as the old, synchronous location update code I have is also working without issues). I’d be grateful for any assistance!
Hello, I developed an application that uses iBeacons to create events, however when the app is in the terminated state I notice that part of my code is activated but the rest of the process is not activated ex : ranging beacon and notification. Is there a way to completely wake up my app when it is in terminated state or at least send a notification to the user to inform them that the app must be opened to put it back in background state so that the app working correctly?
Hi there,
I am trying to develop a country guessing game using MapKit and GeoJSON data. I have verified that my data creates the outline of the country properly using other methods, but I run into an error where the map clips and does not show portions of the countries or islands when zooming at certain levels of the map. I receive the warnings in the terminal "Mismatching number of indices, indexCount: 30, triangulatedIndexCount: 27" and "Triangulator failed to fully triangulate polygon: (0.1296, 0.303328), (0.108053, 0.296605), (0.0671644, 0.289883), (0.0586311, 0.281121), (0.0397156, 0.27289), (0.0323911, 0.262393), (0.0610489, 0.260732), (0.102507, 0.284671), (0.140053, 0.292602), (0.133511, 0.291167), (0.137707, 0.293659), (0.138489, 0.29872)" I am not sure what these tuple values are, or how to fix the errors, as I have adjusted my data (removing duplicate coordinates, refreshing the map, etc). How am I able to counteract these warnings, or at least get a sense of what they are asking?
Dear Community,
After logging into my Developer Account, I am unable to access MapKit JS link under Additional resources. Each time I try to access https://maps.developer.apple.com/ or specifically https://maps.developer.apple.com/token-maker the browser returns 403 forbidden error.
I have tried to use different browser an device and I get the same error.
My MapKit JS Authorization token has expired and I need to reissue fresh token ASAP.
Kindly advice.
Regards,
Swapneel Shah
Hey, I've developed a new audio-based navigation technology for my Master's project at Imperial College London. The main aim of it is to take away the need for an annoying voice based prompt to interrupt your music ("Turn left in 300 yards"). Instead I've created a more natural interaction where the listener's music is binaurally spatialised to provide less annoying directional information.
I've tested the product with many users and the feedback has been really positive! I just wondered whether anyone knew someone at Apple that I could have a chat with about this technology? I think it would work great if it was linked to Apple Maps, especially now with the integration of head-tracking into the Airpod Pro's.
Good afternoon, I'd like to get detailed information about the price usage of the Apple Map in my app in IOS (Swiftui for Iphone and Ipad). I'd like to establish a future price for the app subscription and to do that I need to obtain the precise prices for opening the map, consulting Map items, creating routes, the price of each consulting, and any other price that is related to the map usage process.
I have been searching for this information and it has not been easy to find answers. I appreciate it if I could get the information.
Best regards,
Marcello Lima